Improve database schema and provide schema update queries
This commit is contained in:
parent
20a731c540
commit
944b42afec
2 changed files with 177 additions and 21 deletions
|
@ -21,6 +21,8 @@ CREATE TABLE `kolab_folders` (
|
|||
|
||||
DROP TABLE IF EXISTS `kolab_cache`;
|
||||
|
||||
DROP TABLE IF EXISTS `kolab_cache_contact`;
|
||||
|
||||
CREATE TABLE `kolab_cache_contact` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
|
@ -35,10 +37,11 @@ CREATE TABLE `kolab_cache_contact` (
|
|||
CONSTRAINT `fk_kolab_cache_contact_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `contact_uid` (`uid`),
|
||||
INDEX `contact_type` (`folder_id`,`type`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
DROP TABLE IF EXISTS `kolab_cache_event`;
|
||||
|
||||
CREATE TABLE `kolab_cache_event` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
|
@ -47,16 +50,17 @@ CREATE TABLE `kolab_cache_event` (
|
|||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
CONSTRAINT `fk_kolab_cache_event_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `event_uid` (`uid`)
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
DROP TABLE IF EXISTS `kolab_cache_task`;
|
||||
|
||||
CREATE TABLE `kolab_cache_task` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
|
@ -65,16 +69,17 @@ CREATE TABLE `kolab_cache_task` (
|
|||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
CONSTRAINT `fk_kolab_cache_task_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `task_uid` (`uid`)
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
DROP TABLE IF EXISTS `kolab_cache_journal`;
|
||||
|
||||
CREATE TABLE `kolab_cache_journal` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
|
@ -83,16 +88,17 @@ CREATE TABLE `kolab_cache_journal` (
|
|||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
CONSTRAINT `fk_kolab_cache_journal_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `journal` (`uid`)
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
DROP TABLE IF EXISTS `kolab_cache_note`;
|
||||
|
||||
CREATE TABLE `kolab_cache_note` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
|
@ -105,10 +111,11 @@ CREATE TABLE `kolab_cache_note` (
|
|||
`words` TEXT NOT NULL,
|
||||
CONSTRAINT `fk_kolab_cache_note_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `note_uid` (`uid`)
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
DROP TABLE IF EXISTS `kolab_cache_file`;
|
||||
|
||||
CREATE TABLE `kolab_cache_file` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
|
@ -127,6 +134,8 @@ CREATE TABLE `kolab_cache_file` (
|
|||
INDEX `folder_filename` (`folder_id`, `filename`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
DROP TABLE IF EXISTS `kolab_cache_configuration`;
|
||||
|
||||
CREATE TABLE `kolab_cache_configuration` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
|
@ -141,10 +150,11 @@ CREATE TABLE `kolab_cache_configuration` (
|
|||
CONSTRAINT `fk_kolab_cache_configuration_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `configuration_uid` (`uid`),
|
||||
INDEX `configuration_type` (`folder_id`,`type`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
DROP TABLE IF EXISTS `kolab_cache_freebusy`;
|
||||
|
||||
CREATE TABLE `kolab_cache_freebusy` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
|
@ -153,14 +163,13 @@ CREATE TABLE `kolab_cache_freebusy` (
|
|||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
CONSTRAINT `fk_kolab_cache_cfreebusy_folder` FOREIGN KEY (`folder_id`)
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
CONSTRAINT `fk_kolab_cache_freebusy_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `freebusy_uid` (`uid`)
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
|
|
147
plugins/libkolab/SQL/mysql/2013100400.sql
Normal file
147
plugins/libkolab/SQL/mysql/2013100400.sql
Normal file
|
@ -0,0 +1,147 @@
|
|||
DROP TABLE IF EXISTS `kolab_cache`;
|
||||
|
||||
CREATE TABLE `kolab_folders` (
|
||||
`ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`resource` VARCHAR(255) CHARACTER SET ascii NOT NULL,
|
||||
`type` VARCHAR(32) CHARACTER SET ascii NOT NULL,
|
||||
`synclock` INT(10) NOT NULL DEFAULT '0',
|
||||
`ctag` VARCHAR(32) DEFAULT NULL,
|
||||
PRIMARY KEY(`ID`),
|
||||
INDEX `resource_type` (`resource`, `type`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `kolab_cache_contact` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
`uid` VARCHAR(128) CHARACTER SET ascii NOT NULL,
|
||||
`created` DATETIME DEFAULT NULL,
|
||||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`type` VARCHAR(32) CHARACTER SET ascii NOT NULL,
|
||||
CONSTRAINT `fk_kolab_cache_contact_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `contact_type` (`folder_id`,`type`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `kolab_cache_event` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
`uid` VARCHAR(128) CHARACTER SET ascii NOT NULL,
|
||||
`created` DATETIME DEFAULT NULL,
|
||||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
CONSTRAINT `fk_kolab_cache_event_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `kolab_cache_task` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
`uid` VARCHAR(128) CHARACTER SET ascii NOT NULL,
|
||||
`created` DATETIME DEFAULT NULL,
|
||||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
CONSTRAINT `fk_kolab_cache_task_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `kolab_cache_journal` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
`uid` VARCHAR(128) CHARACTER SET ascii NOT NULL,
|
||||
`created` DATETIME DEFAULT NULL,
|
||||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
CONSTRAINT `fk_kolab_cache_journal_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `kolab_cache_note` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
`uid` VARCHAR(128) CHARACTER SET ascii NOT NULL,
|
||||
`created` DATETIME DEFAULT NULL,
|
||||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
CONSTRAINT `fk_kolab_cache_note_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `kolab_cache_file` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
`uid` VARCHAR(128) CHARACTER SET ascii NOT NULL,
|
||||
`created` DATETIME DEFAULT NULL,
|
||||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`type` VARCHAR(32) CHARACTER SET ascii NOT NULL,
|
||||
`filename` varchar(255) DEFAULT NULL,
|
||||
CONSTRAINT `fk_kolab_cache_file_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `folder_filename` (`folder_id`, `filename`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `kolab_cache_configuration` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
`uid` VARCHAR(128) CHARACTER SET ascii NOT NULL,
|
||||
`created` DATETIME DEFAULT NULL,
|
||||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`type` VARCHAR(32) CHARACTER SET ascii NOT NULL,
|
||||
CONSTRAINT `fk_kolab_cache_configuration_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`),
|
||||
INDEX `configuration_type` (`folder_id`,`type`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `kolab_cache_freebusy` (
|
||||
`folder_id` BIGINT UNSIGNED NOT NULL,
|
||||
`msguid` BIGINT UNSIGNED NOT NULL,
|
||||
`uid` VARCHAR(128) CHARACTER SET ascii NOT NULL,
|
||||
`created` DATETIME DEFAULT NULL,
|
||||
`changed` DATETIME DEFAULT NULL,
|
||||
`data` TEXT NOT NULL,
|
||||
`xml` TEXT NOT NULL,
|
||||
`tags` VARCHAR(255) NOT NULL,
|
||||
`words` TEXT NOT NULL,
|
||||
`dtstart` DATETIME,
|
||||
`dtend` DATETIME,
|
||||
CONSTRAINT `fk_kolab_cache_freebusy_folder` FOREIGN KEY (`folder_id`)
|
||||
REFERENCES `kolab_folders`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`folder_id`,`msguid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
Loading…
Add table
Reference in a new issue