From: Chuck Hagenbuch Date: Sun, 3 Oct 2010 21:17:16 +0000 (-0400) Subject: Add migrations for Nag, remove old SQL scripts X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=573deb083b75dee741bfc510434a6a6e72300a77;p=horde.git Add migrations for Nag, remove old SQL scripts --- diff --git a/nag/migration/1_nag_base_tables.php b/nag/migration/1_nag_base_tables.php new file mode 100644 index 000000000..db8b06832 --- /dev/null +++ b/nag/migration/1_nag_base_tables.php @@ -0,0 +1,109 @@ + + * @category Horde + * @license http://www.fsf.org/copyleft/gpl.html GPL + * @package Nag + */ +class NagBaseTables extends Horde_Db_Migration_Base +{ + /** + * Upgrade. + */ + public function up() + { + $tableList = $this->tables(); + + if (!in_array('nag_tasks', $tableList)) { + $t = $this->createTable('nag_tasks', array('primaryKey' => false)); + $t->column('task_id', 'string', array('limit' => 32, 'null' => false)); + $t->column('task_owner', 'string', array('null' => false)); + $t->column('task_creator', 'string', array('null' => false)); + $t->column('task_parent', 'string'); + $t->column('task_assignee', 'string'); + $t->column('task_name', 'string', array('null' => false)); + $t->column('task_uid', 'string', array('null' => false)); + $t->column('task_desc', 'text'); + $t->column('task_start', 'integer'); + $t->column('task_due', 'integer'); + $t->column('task_priority', 'integer', array('default' => 0, 'null' => false)); + $t->column('task_estimate', 'float'); + $t->column('task_category', 'string', array('limit' => 80)); + $t->column('task_completed', 'integer', array('limit' => 1, 'default' => 0, 'null' => false)); + $t->column('task_completed_date', 'integer'); + $t->column('task_alarm', 'integer', array('default' => 0, 'null' => false)); + $t->column('task_alarm_methods', 'text'); + $t->column('task_private', 'integer', array('limit' => 1, 'default' => 0, 'null' => false)); + $t->primaryKey(array('task_id')); + $t->end(); + + $this->addIndex('nag_tasks', 'task_owner'); + $this->addIndex('nag_tasks', 'task_uid'); + $this->addIndex('nag_tasks', 'task_start'); + } + + if (!in_array('nag_shares', $tableList)) { + $t = $this->createTable('nag_shares', array('primaryKey' => 'share_id')); + $t->column('share_id', 'integer', array('null' => false)); + $t->column('share_name', 'string', array('null' => false)); + $t->column('share_owner', 'string'); + $t->column('share_flags', 'integer', array('limit' => 2, 'default' => 0, 'null' => false)); + $t->column('perm_creator', 'integer', array('limit' => 2, 'default' => 0, 'null' => false)); + $t->column('perm_default', 'integer', array('limit' => 2, 'default' => 0, 'null' => false)); + $t->column('perm_guest', 'integer', array('limit' => 2, 'default' => 0, 'null' => false)); + $t->column('attribute_name', 'string', array('null' => false)); + $t->column('attribute_desc', 'string'); + $t->column('attribute_color', 'string', array('limit' => 7)); + $t->primaryKey(array('share_id')); + $t->end(); + + $this->addIndex('nag_shares', 'share_name'); + $this->addIndex('nag_shares', 'share_owner'); + $this->addIndex('nag_shares', 'perm_creator'); + $this->addIndex('nag_shares', 'perm_default'); + $this->addIndex('nag_shares', 'perm_guest'); + } + + if (!in_array('nag_shares_groups', $tableList)) { + $t = $this->createTable('nag_shares_groups', array('primaryKey' => false)); + $t->column('share_id', 'integer', array('null' => false)); + $t->column('group_uid', 'string', array('null' => false)); + $t->column('perm', 'integer', array('limit' => 2, 'null' => false)); + $t->end(); + + $this->addIndex('nag_shares_groups', 'share_id'); + $this->addIndex('nag_shares_groups', 'group_uid'); + $this->addIndex('nag_shares_groups', 'perm'); + } + + if (!in_array('nag_shares_users', $tableList)) { + $t = $this->createTable('nag_shares_users', array('primaryKey' => false)); + $t->column('share_id', 'integer', array('null' => false)); + $t->column('user_uid', 'string', array('null' => false)); + $t->column('perm', 'integer', array('limit' => 2, 'null' => false)); + $t->end(); + + $this->addIndex('nag_shares_users', 'share_id'); + $this->addIndex('nag_shares_users', 'user_uid'); + $this->addIndex('nag_shares_users', 'perm'); + } + } + + /** + * Downgrade. + */ + public function down() + { + $this->dropTable('nag_tasks'); + $this->dropTable('nag_shares'); + $this->dropTable('nag_shares_groups'); + $this->dropTable('nag_shares_users'); + } +} diff --git a/nag/scripts/sql/nag.mssql.sql b/nag/scripts/sql/nag.mssql.sql deleted file mode 100644 index 5298d1377..000000000 --- a/nag/scripts/sql/nag.mssql.sql +++ /dev/null @@ -1,66 +0,0 @@ -CREATE TABLE nag_tasks ( - task_id VARCHAR(32) NOT NULL, - task_owner VARCHAR(255) NOT NULL, - task_creator VARCHAR(255) NOT NULL, - task_parent VARCHAR(255), - task_assignee VARCHAR(255), - task_name VARCHAR(255) NOT NULL, - task_uid VARCHAR(255) NOT NULL, - task_desc VARCHAR(MAX), - task_start INT, - task_due INT, - task_priority INT DEFAULT 0 NOT NULL, - task_estimate FLOAT, - task_category VARCHAR(80), - task_completed SMALLINT DEFAULT 0 NOT NULL, - task_completed_date INT, - task_alarm INT DEFAULT 0 NOT NULL, - task_alarm_methods VARCHAR(MAX), - task_private SMALLINT DEFAULT 0 NOT NULL, --- - PRIMARY KEY (task_id) -); - -CREATE INDEX nag_tasklist_idx ON nag_tasks (task_owner); -CREATE INDEX nag_uid_idx ON nag_tasks (task_uid); -CREATE INDEX nag_start_idx ON nag_tasks (task_start); - -CREATE TABLE nag_shares ( - share_id INT NOT NULL, - share_name VARCHAR(255) NOT NULL, - share_owner VARCHAR(255), - share_flags SMALLINT DEFAULT 0 NOT NULL, - perm_creator SMALLINT DEFAULT 0 NOT NULL, - perm_default SMALLINT DEFAULT 0 NOT NULL, - perm_guest SMALLINT DEFAULT 0 NOT NULL, - attribute_name VARCHAR(255) NOT NULL, - attribute_desc VARCHAR(255), - attribute_color VARCHAR(7), - PRIMARY KEY (share_id) -); - -CREATE INDEX nag_shares_share_name_idx ON nag_shares (share_name); -CREATE INDEX nag_shares_share_owner_idx ON nag_shares (share_owner); -CREATE INDEX nag_shares_perm_creator_idx ON nag_shares (perm_creator); -CREATE INDEX nag_shares_perm_default_idx ON nag_shares (perm_default); -CREATE INDEX nag_shares_perm_guest_idx ON nag_shares (perm_guest); - -CREATE TABLE nag_shares_groups ( - share_id INT NOT NULL, - group_uid VARCHAR(255) NOT NULL, - perm SMALLINT NOT NULL -); - -CREATE INDEX nag_shares_groups_share_id_idx ON nag_shares_groups (share_id); -CREATE INDEX nag_shares_groups_group_uid_idx ON nag_shares_groups (group_uid); -CREATE INDEX nag_shares_groups_perm_idx ON nag_shares_groups (perm); - -CREATE TABLE nag_shares_users ( - share_id INT NOT NULL, - user_uid VARCHAR(255) NOT NULL, - perm SMALLINT NOT NULL -); - -CREATE INDEX nag_shares_users_share_id_idx ON nag_shares_users (share_id); -CREATE INDEX nag_shares_users_user_uid_idx ON nag_shares_users (user_uid); -CREATE INDEX nag_shares_users_perm_idx ON nag_shares_users (perm); diff --git a/nag/scripts/sql/nag.oci8.sql b/nag/scripts/sql/nag.oci8.sql deleted file mode 100644 index 3d0ade771..000000000 --- a/nag/scripts/sql/nag.oci8.sql +++ /dev/null @@ -1,66 +0,0 @@ -CREATE TABLE nag_tasks ( - task_id VARCHAR2(32) NOT NULL, - task_owner VARCHAR2(255) NOT NULL, - task_creator VARCHAR2(255) NOT NULL, - task_parent VARCHAR2(255), - task_assignee VARCHAR2(255), - task_name VARCHAR2(255) NOT NULL, - task_uid VARCHAR2(255) NOT NULL, - task_desc CLOB, - task_start NUMBER(16), - task_due NUMBER(16), - task_priority NUMBER(16) DEFAULT 0 NOT NULL, - task_estimate FLOAT, - task_category VARCHAR2(80), - task_completed NUMBER(8) DEFAULT 0 NOT NULL, - task_completed_date NUMBER(16), - task_alarm NUMBER(16) DEFAULT 0 NOT NULL, - task_alarm_methods CLOB, - task_private NUMBER(8) DEFAULT 0 NOT NULL, --- - PRIMARY KEY (task_id) -); - -CREATE INDEX nag_tasklist_idx ON nag_tasks (task_owner); -CREATE INDEX nag_uid_idx ON nag_tasks (task_uid); -CREATE INDEX nag_start_idx ON nag_tasks (task_start); - -CREATE TABLE nag_shares ( - share_id NUMBER(16) NOT NULL, - share_name VARCHAR2(255) NOT NULL, - share_owner VARCHAR2(25), - share_flags NUMBER(8) DEFAULT 0 NOT NULL, - perm_creator NUMBER(8) DEFAULT 0 NOT NULL, - perm_default NUMBER(8) DEFAULT 0 NOT NULL, - perm_guest NUMBER(8) DEFAULT 0 NOT NULL, - attribute_name VARCHAR2(255) NOT NULL, - attribute_desc VARCHAR2(255), - attribute_color VARCHAR2(7), - PRIMARY KEY (share_id) -); - -CREATE INDEX nag_shares_name_idx ON nag_shares (share_name); -CREATE INDEX nag_shares_owner_idx ON nag_shares (share_owner); -CREATE INDEX nag_shares_creator_idx ON nag_shares (perm_creator); -CREATE INDEX nag_shares_default_idx ON nag_shares (perm_default); -CREATE INDEX nag_shares_guest_idx ON nag_shares (perm_guest); - -CREATE TABLE nag_shares_groups ( - share_id NUMBER(16) NOT NULL, - group_uid VARCHAR2(255) NOT NULL, - perm NUMBER(8) NOT NULL -); - -CREATE INDEX nag_groups_share_id_idx ON nag_shares_groups (share_id); -CREATE INDEX nag_groups_group_uid_idx ON nag_shares_groups (group_uid); -CREATE INDEX nag_groups_perm_idx ON nag_shares_groups (perm); - -CREATE TABLE nag_shares_users ( - share_id NUMBER(16) NOT NULL, - user_uid VARCHAR2(255) NOT NULL, - perm NUMBER(8) NOT NULL -); - -CREATE INDEX nag_users_share_id_idx ON nag_shares_users (share_id); -CREATE INDEX nag_users_user_uid_idx ON nag_shares_users (user_uid); -CREATE INDEX nag_users_perm_idx ON nag_shares_users (perm); diff --git a/nag/scripts/sql/nag.sql b/nag/scripts/sql/nag.sql deleted file mode 100644 index dfdf2ce74..000000000 --- a/nag/scripts/sql/nag.sql +++ /dev/null @@ -1,66 +0,0 @@ -CREATE TABLE nag_tasks ( - task_id VARCHAR(32) NOT NULL, - task_owner VARCHAR(255) NOT NULL, - task_creator VARCHAR(255) NOT NULL, - task_parent VARCHAR(255), - task_assignee VARCHAR(255), - task_name VARCHAR(255) NOT NULL, - task_uid VARCHAR(255) NOT NULL, - task_desc TEXT, - task_start INT, - task_due INT, - task_priority INT DEFAULT 0 NOT NULL, - task_estimate FLOAT, - task_category VARCHAR(80), - task_completed SMALLINT DEFAULT 0 NOT NULL, - task_completed_date INT, - task_alarm INT DEFAULT 0 NOT NULL, - task_alarm_methods TEXT, - task_private SMALLINT DEFAULT 0 NOT NULL, --- - PRIMARY KEY (task_id) -); - -CREATE INDEX nag_tasklist_idx ON nag_tasks (task_owner); -CREATE INDEX nag_uid_idx ON nag_tasks (task_uid); -CREATE INDEX nag_start_idx ON nag_tasks (task_start); - -CREATE TABLE nag_shares ( - share_id INT NOT NULL, - share_name VARCHAR(255) NOT NULL, - share_owner VARCHAR(255), - share_flags SMALLINT DEFAULT 0 NOT NULL, - perm_creator SMALLINT DEFAULT 0 NOT NULL, - perm_default SMALLINT DEFAULT 0 NOT NULL, - perm_guest SMALLINT DEFAULT 0 NOT NULL, - attribute_name VARCHAR(255) NOT NULL, - attribute_desc VARCHAR(255), - attribute_color VARCHAR(7), - PRIMARY KEY (share_id) -); - -CREATE INDEX nag_shares_share_name_idx ON nag_shares (share_name); -CREATE INDEX nag_shares_share_owner_idx ON nag_shares (share_owner); -CREATE INDEX nag_shares_perm_creator_idx ON nag_shares (perm_creator); -CREATE INDEX nag_shares_perm_default_idx ON nag_shares (perm_default); -CREATE INDEX nag_shares_perm_guest_idx ON nag_shares (perm_guest); - -CREATE TABLE nag_shares_groups ( - share_id INT NOT NULL, - group_uid VARCHAR(255) NOT NULL, - perm SMALLINT NOT NULL -); - -CREATE INDEX nag_shares_groups_share_id_idx ON nag_shares_groups (share_id); -CREATE INDEX nag_shares_groups_group_uid_idx ON nag_shares_groups (group_uid); -CREATE INDEX nag_shares_groups_perm_idx ON nag_shares_groups (perm); - -CREATE TABLE nag_shares_users ( - share_id INT NOT NULL, - user_uid VARCHAR(255) NOT NULL, - perm SMALLINT NOT NULL -); - -CREATE INDEX nag_shares_users_share_id_idx ON nag_shares_users (share_id); -CREATE INDEX nag_shares_users_user_uid_idx ON nag_shares_users (user_uid); -CREATE INDEX nag_shares_users_perm_idx ON nag_shares_users (perm); diff --git a/nag/scripts/sql/nag.xml b/nag/scripts/sql/nag.xml deleted file mode 100644 index 7e4cbf288..000000000 --- a/nag/scripts/sql/nag.xml +++ /dev/null @@ -1,418 +0,0 @@ - - - - name - false - false - - - - nag_tasks - - - - - task_id - text - 32 - true - - - - task_owner - text - 255 - true - - - - task_creator - text - 255 - true - - - - task_parent - text - 32 - - - - task_assignee - text - 255 - - - - task_name - text - 255 - true - - - - task_uid - text - 255 - true - - - - task_desc - clob - - - - task_start - integer - - - - task_due - integer - - - - task_priority - integer - true - 0 - - - - task_estimate - float - - - - task_category - text - 80 - - - - task_completed - integer - 1 - true - 0 - - - - task_completed_date - integer - - - - task_alarm - integer - false - true - 0 - - - - task_alarm_methods - clob - - - - task_private - integer - 1 - true - 0 - - - - nag_primary - true - - task_id - - - - - nag_tasklist - - task_owner - ascending - - - - - nag_uid - - task_uid - ascending - - - - - nag_start - - task_start - ascending - - - - - -
- - - - nag_shares - - - - - share_id - integer - - true - 4 - - - - share_name - text - - true - 255 - - - - share_owner - text - - 255 - - - - share_flags - integer - 0 - true - 2 - - - - perm_creator - integer - 0 - true - 2 - - - - perm_default - integer - 0 - true - 2 - - - - perm_guest - integer - 0 - true - 2 - - - - attribute_name - text - - true - 255 - - - - attribute_desc - text - - false - 255 - - - - attribute_color - text - - false - 7 - - - - nag_shares_name - - share_name - ascending - - - - - nag_shares_owner - - share_owner - ascending - - - - - nag_shares_creator - - perm_creator - ascending - - - - - nag_shares_default - - perm_default - ascending - - - - - nag_shares_guest - - perm_guest - ascending - - - - - nag_shares_pKey - true - - share_id - ascending - - - - - -
- - - - nag_shares_groups - - - - - share_id - integer - - true - 4 - - - - group_uid - text - - true - 255 - - - - perm - integer - - true - 2 - - - - nag_groups_share_id - - share_id - ascending - - - - - nag_groups_group_uid - - group_uid - ascending - - - - - nag_groups_perm - - perm - ascending - - - - - -
- - - - nag_shares_users - - - - - share_id - integer - - true - 4 - - - - user_uid - text - - true - 255 - - - - perm - integer - - true - 2 - - - - nag_users_share_id - - share_id - ascending - - - - - nag_users_user_uid - - user_uid - ascending - - - - - nag_users_perm - - perm - ascending - - - - - -
- -