3
|
1 /**
|
|
2 * Roundcube Calendar
|
|
3 *
|
|
4 * Plugin to add a calendar to Roundcube.
|
|
5 *
|
|
6 * @author Lazlo Westerhof
|
|
7 * @author Thomas Bruederli
|
|
8 * @licence GNU AGPL
|
|
9 * @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
|
10 * @copyright (c) 2014 Kolab Systems AG
|
|
11 *
|
|
12 **/
|
|
13
|
|
14 CREATE TABLE IF NOT EXISTS `calendars` (
|
|
15 `calendar_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
16 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
|
17 `name` varchar(255) NOT NULL,
|
|
18 `color` varchar(8) NOT NULL,
|
|
19 `showalarms` tinyint(1) NOT NULL DEFAULT '1',
|
|
20 PRIMARY KEY(`calendar_id`),
|
|
21 INDEX `user_name_idx` (`user_id`, `name`),
|
|
22 CONSTRAINT `fk_calendars_user_id` FOREIGN KEY (`user_id`)
|
|
23 REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
24 ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
|
25
|
|
26 CREATE TABLE IF NOT EXISTS `events` (
|
|
27 `event_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
28 `calendar_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
|
29 `recurrence_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
|
30 `uid` varchar(255) NOT NULL DEFAULT '',
|
|
31 `instance` varchar(16) NOT NULL DEFAULT '',
|
|
32 `isexception` tinyint(1) NOT NULL DEFAULT '0',
|
|
33 `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
|
34 `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
|
35 `sequence` int(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
36 `start` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
|
37 `end` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
|
38 `recurrence` varchar(255) DEFAULT NULL,
|
|
39 `title` varchar(255) NOT NULL,
|
|
40 `description` text NOT NULL,
|
|
41 `location` varchar(255) NOT NULL DEFAULT '',
|
|
42 `categories` varchar(255) NOT NULL DEFAULT '',
|
|
43 `url` varchar(255) NOT NULL DEFAULT '',
|
|
44 `all_day` tinyint(1) NOT NULL DEFAULT '0',
|
|
45 `free_busy` tinyint(1) NOT NULL DEFAULT '0',
|
|
46 `priority` tinyint(1) NOT NULL DEFAULT '0',
|
|
47 `sensitivity` tinyint(1) NOT NULL DEFAULT '0',
|
|
48 `status` varchar(32) NOT NULL DEFAULT '',
|
|
49 `alarms` text DEFAULT NULL,
|
|
50 `attendees` text DEFAULT NULL,
|
|
51 `notifyat` datetime DEFAULT NULL,
|
|
52 PRIMARY KEY(`event_id`),
|
|
53 INDEX `uid_idx` (`uid`),
|
|
54 INDEX `recurrence_idx` (`recurrence_id`),
|
|
55 INDEX `calendar_notify_idx` (`calendar_id`,`notifyat`),
|
|
56 CONSTRAINT `fk_events_calendar_id` FOREIGN KEY (`calendar_id`)
|
|
57 REFERENCES `calendars`(`calendar_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
58 ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
|
59
|
|
60 CREATE TABLE IF NOT EXISTS `attachments` (
|
|
61 `attachment_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
62 `event_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
|
63 `filename` varchar(255) NOT NULL DEFAULT '',
|
|
64 `mimetype` varchar(255) NOT NULL DEFAULT '',
|
|
65 `size` int(11) NOT NULL DEFAULT '0',
|
|
66 `data` longtext NOT NULL,
|
|
67 PRIMARY KEY(`attachment_id`),
|
|
68 CONSTRAINT `fk_attachments_event_id` FOREIGN KEY (`event_id`)
|
|
69 REFERENCES `events`(`event_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
70 ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
|
71
|
|
72 CREATE TABLE IF NOT EXISTS `itipinvitations` (
|
|
73 `token` VARCHAR(64) NOT NULL,
|
|
74 `event_uid` VARCHAR(255) NOT NULL,
|
|
75 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
|
76 `event` TEXT NOT NULL,
|
|
77 `expires` DATETIME DEFAULT NULL,
|
|
78 `cancelled` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
|
|
79 PRIMARY KEY(`token`),
|
|
80 INDEX `uid_idx` (`user_id`,`event_uid`),
|
|
81 CONSTRAINT `fk_itipinvitations_user_id` FOREIGN KEY (`user_id`)
|
|
82 REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
83 ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
|
84
|
|
85 REPLACE INTO system (name, value) VALUES ('calendar-database-version', '2015022700');
|