diff options
author | Dries Buytaert <dries@buytaert.net> | 2007-05-25 12:46:46 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2007-05-25 12:46:46 +0000 |
commit | 3cafffe63f70f418d0b6ca32ac5e0f3e27dceb41 (patch) | |
tree | cd59a40556a084f35b7b5a3bc3caa50874087541 /modules/aggregator | |
parent | ae762838c0e92bded86370103df4583874c50da7 (diff) | |
download | brdo-3cafffe63f70f418d0b6ca32ac5e0f3e27dceb41.tar.gz brdo-3cafffe63f70f418d0b6ca32ac5e0f3e27dceb41.tar.bz2 |
- Killer patch #144765 by bjaspan, frando et al: schema API 1 hits core. Oh, behave.
Diffstat (limited to 'modules/aggregator')
-rw-r--r-- | modules/aggregator/aggregator.install | 119 | ||||
-rw-r--r-- | modules/aggregator/aggregator.schema | 70 |
2 files changed, 75 insertions, 114 deletions
diff --git a/modules/aggregator/aggregator.install b/modules/aggregator/aggregator.install index 9cc59cc2d..8c44c33a7 100644 --- a/modules/aggregator/aggregator.install +++ b/modules/aggregator/aggregator.install @@ -5,126 +5,17 @@ * Implementation of hook_install(). */ function aggregator_install() { - switch ($GLOBALS['db_type']) { - case 'mysql': - case 'mysqli': - db_query("CREATE TABLE {aggregator_category} ( - cid int NOT NULL auto_increment, - title varchar(255) NOT NULL default '', - description longtext NOT NULL, - block tinyint NOT NULL default '0', - PRIMARY KEY (cid), - UNIQUE KEY title (title) - ) /*!40100 DEFAULT CHARACTER SET UTF8 */ "); - - db_query("CREATE TABLE {aggregator_category_feed} ( - fid int NOT NULL default '0', - cid int NOT NULL default '0', - PRIMARY KEY (fid,cid) - ) /*!40100 DEFAULT CHARACTER SET UTF8 */ "); - - db_query("CREATE TABLE {aggregator_category_item} ( - iid int NOT NULL default '0', - cid int NOT NULL default '0', - PRIMARY KEY (iid,cid) - ) /*!40100 DEFAULT CHARACTER SET UTF8 */ "); - - db_query("CREATE TABLE {aggregator_feed} ( - fid int NOT NULL auto_increment, - title varchar(255) NOT NULL default '', - url varchar(255) NOT NULL default '', - refresh int NOT NULL default '0', - checked int NOT NULL default '0', - link varchar(255) NOT NULL default '', - description longtext NOT NULL, - image longtext NOT NULL, - etag varchar(255) NOT NULL default '', - modified int NOT NULL default '0', - block tinyint NOT NULL default '0', - PRIMARY KEY (fid), - UNIQUE KEY link (url), - UNIQUE KEY title (title) - ) /*!40100 DEFAULT CHARACTER SET UTF8 */ "); - - db_query("CREATE TABLE {aggregator_item} ( - iid int NOT NULL auto_increment, - fid int NOT NULL default '0', - title varchar(255) NOT NULL default '', - link varchar(255) NOT NULL default '', - author varchar(255) NOT NULL default '', - description longtext NOT NULL, - timestamp int default NULL, - guid varchar(255), - PRIMARY KEY (iid), - KEY fid (fid) - ) /*!40100 DEFAULT CHARACTER SET UTF8 */ "); - - break; - case 'pgsql': - db_query("CREATE TABLE {aggregator_category} ( - cid serial, - title varchar(255) NOT NULL default '', - description text NOT NULL, - block smallint NOT NULL default '0', - PRIMARY KEY (cid), - UNIQUE (title) - )"); - - db_query("CREATE TABLE {aggregator_category_feed} ( - fid int NOT NULL default '0', - cid int NOT NULL default '0', - PRIMARY KEY (fid,cid) - )"); - - db_query("CREATE TABLE {aggregator_category_item} ( - iid int NOT NULL default '0', - cid int NOT NULL default '0', - PRIMARY KEY (iid,cid) - )"); - - db_query("CREATE TABLE {aggregator_feed} ( - fid serial, - title varchar(255) NOT NULL default '', - url varchar(255) NOT NULL default '', - refresh int NOT NULL default '0', - checked int NOT NULL default '0', - link varchar(255) NOT NULL default '', - description text NOT NULL default '', - image text NOT NULL default '', - etag varchar(255) NOT NULL default '', - modified int NOT NULL default '0', - block smallint NOT NULL default '0', - PRIMARY KEY (fid), - UNIQUE (url), - UNIQUE (title) - )"); - - db_query("CREATE TABLE {aggregator_item} ( - iid serial, - fid int NOT NULL default '0', - title varchar(255) NOT NULL default '', - link varchar(255) NOT NULL default '', - author varchar(255) NOT NULL default '', - description text NOT NULL, - timestamp int default NULL, - guid varchar(255), - PRIMARY KEY (iid) - )"); - db_query("CREATE INDEX {aggregator_item}_fid_idx ON {aggregator_item} (fid)"); - - break; - } + // Create tables. + drupal_install_schema('aggregator'); } /** * Implementation of hook_uninstall(). */ function aggregator_uninstall() { - db_query('DROP TABLE {aggregator_category}'); - db_query('DROP TABLE {aggregator_category_feed}'); - db_query('DROP TABLE {aggregator_category_item}'); - db_query('DROP TABLE {aggregator_feed}'); - db_query('DROP TABLE {aggregator_item}'); + // Remove tables. + drupal_uninstall_schema('aggregator'); + variable_del('aggregator_allowed_html_tags'); variable_del('aggregator_summary_items'); variable_del('aggregator_clear'); diff --git a/modules/aggregator/aggregator.schema b/modules/aggregator/aggregator.schema new file mode 100644 index 000000000..ed0c146e9 --- /dev/null +++ b/modules/aggregator/aggregator.schema @@ -0,0 +1,70 @@ +<?php +// $Id$ + +function aggregator_schema() { + $schema['aggregator_category'] = array( + 'fields' => array( + 'cid' => array('type' => 'serial', 'not null' => TRUE), + 'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'description' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'), + 'block' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny') + ), + 'primary key' => array('cid'), + 'unique keys' => array('title' => array('title')), + ); + + $schema['aggregator_category_feed'] = array( + 'fields' => array( + 'fid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'cid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0) + ), + 'primary key' => array('fid', 'cid'), + ); + + $schema['aggregator_category_item'] = array( + 'fields' => array( + 'iid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'cid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0) + ), + 'primary key' => array('iid', 'cid'), + ); + + $schema['aggregator_feed'] = array( + 'fields' => array( + 'fid' => array('type' => 'serial', 'not null' => TRUE), + 'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'url' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'refresh' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'checked' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'link' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'description' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'), + 'image' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'), + 'etag' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'modified' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'block' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny') + ), + 'unique keys' => array( + 'url' => array('url'), + 'title' => array('title') + ), + 'primary key' => array('fid'), + ); + + $schema['aggregator_item'] = array( + 'fields' => array( + 'iid' => array('type' => 'serial', 'not null' => TRUE), + 'fid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'link' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'author' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'description' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'), + 'timestamp' => array('type' => 'int', 'not null' => FALSE), + 'guid' => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE) + ), + 'indexes' => array('fid' => array('fid')), + 'primary key' => array('iid'), + ); + + return $schema; +} + |