plugins/calendar plugins/libkolab plugins/tasklist
Aleksander Machniak
machniak at kolabsys.com
Fri Jan 18 09:41:08 CET 2013
plugins/calendar/README | 2
plugins/calendar/UPGRADING | 16 +
plugins/calendar/drivers/database/SQL/mysql.initial.sql | 82 +++++++
plugins/calendar/drivers/database/SQL/mysql/2012080600.sql | 3
plugins/calendar/drivers/database/SQL/mysql/2013011000.sql | 1
plugins/calendar/drivers/database/SQL/postgres.initial.sql | 106 ++++++++++
plugins/calendar/drivers/database/SQL/postgres/2012080600.sql | 3
plugins/calendar/drivers/database/SQL/postgres/2013011000.sql | 1
plugins/calendar/drivers/database/SQL/sqlite.initial.sql | 76 +++++++
plugins/calendar/drivers/database/SQL/sqlite/2013011000.sql | 1
plugins/calendar/drivers/database/sql/mysql.sql | 80 -------
plugins/calendar/drivers/database/sql/mysql.upgrade-0.7.sql | 5
plugins/calendar/drivers/database/sql/postgres.upgrade-0.7.sql | 5
plugins/calendar/drivers/database/sql/postgresql.sql | 104 ---------
plugins/calendar/drivers/database/sql/sqlite.sql | 75 -------
plugins/calendar/drivers/kolab/SQL/mysql.initial.sql | 32 +++
plugins/calendar/drivers/kolab/SQL/mysql.sql | 31 --
plugins/calendar/drivers/kolab/SQL/mysql.upgrade-0.7.sql | 15 -
plugins/calendar/drivers/kolab/SQL/mysql/2012080600.sql | 11 +
plugins/calendar/drivers/kolab/SQL/mysql/2013011000.sql | 1
plugins/libkolab/README | 6
plugins/libkolab/SQL/mysql.initial.sql | 27 ++
plugins/libkolab/SQL/mysql.sql | 25 --
plugins/libkolab/SQL/mysql/2013011000.sql | 1
plugins/libkolab/UPGRADING | 9
plugins/tasklist/UPGRADING | 17 +
plugins/tasklist/drivers/database/SQL/mysql.initial.sql | 51 ++++
plugins/tasklist/drivers/database/SQL/mysql.sql | 49 ----
plugins/tasklist/drivers/database/SQL/mysql/2013011000.sql | 1
29 files changed, 436 insertions(+), 400 deletions(-)
New commits:
commit 7672e60ecb54f6170cb2d904007caa4b94f57ab5
Author: Aleksander Machniak <machniak at kolabsys.com>
Date: Fri Jan 18 09:40:48 2013 +0100
Update SQL scripts to match Roundcube format for schema upgrades, update/add UPGRADING instructions
diff --git a/plugins/calendar/README b/plugins/calendar/README
index 7abf8e3..c10f389 100644
--- a/plugins/calendar/README
+++ b/plugins/calendar/README
@@ -4,7 +4,7 @@ A calendar module for Roundcube
This plugin currently supports a local database as well as a Kolab groupware
server as backends for calendar and event storage. For both drivers, some
initialization of the local database is necessary. To do so, execute the
-SQL commands in drivers/<yourchoice>/SQL/<yourdatabase>.sql
+SQL commands in drivers/<yourchoice>/SQL/<yourdatabase>.initial.sql
The client-side calendar UI relies on the "fullcalendar" project by Adam Arshaw
with extensions made for the use in Roundcube. All changes are published in
diff --git a/plugins/calendar/UPGRADING b/plugins/calendar/UPGRADING
index 3038233..524c2ac 100644
--- a/plugins/calendar/UPGRADING
+++ b/plugins/calendar/UPGRADING
@@ -1,11 +1,17 @@
UPGRADING instructions
======================
-From version 0.7 and 0.8
-------------------------
+To update database schema, depending on the driver you're using,
+please run in Roundcube bin/ directory:
-The schemas of the backend databases have changed. Depending on the driver
-you're using, please execute all statements from divers/<driver>/sql/<db>.upgrade-0.7.sql
-on your local database.
+updatedb.sh --package=calendar-<driver> --version=<version> \
+ --dir=../plugins/calendar/drivers/<driver>/SQL
+[*] Replace <driver> with "database" or "kolab" (without quotes)
+[*] Replace <version> with Roundcube version e.g. 0.7.3
+[*] Roundcube should be upgraded before plugin upgrades
+Example:
+
+updatedb.sh --package=calendar-kolab --version=0.8.0 \
+ --dir=../plugins/calendar/drivers/kolab/SQL
diff --git a/plugins/calendar/drivers/database/SQL/mysql.initial.sql b/plugins/calendar/drivers/database/SQL/mysql.initial.sql
new file mode 100644
index 0000000..c8c3d7b
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/mysql.initial.sql
@@ -0,0 +1,82 @@
+/**
+ * Roundcube Calendar
+ *
+ * Plugin to add a calendar to Roundcube.
+ *
+ * @version @package_version@
+ * @author Lazlo Westerhof
+ * @author Thomas Bruederli
+ * @url http://rc-calendar.lazlo.me
+ * @licence GNU AGPL
+ * @copyright (c) 2010 Lazlo Westerhof - Netherlands
+ *
+ **/
+
+CREATE TABLE `calendars` (
+ `calendar_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `name` varchar(255) NOT NULL,
+ `color` varchar(8) NOT NULL,
+ `showalarms` tinyint(1) NOT NULL DEFAULT '1',
+ PRIMARY KEY(`calendar_id`),
+ INDEX `user_name_idx` (`user_id`, `name`),
+ CONSTRAINT `fk_calendars_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `events` (
+ `event_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `calendar_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
+ `recurrence_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
+ `uid` varchar(255) NOT NULL DEFAULT '',
+ `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
+ `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
+ `sequence` int(1) UNSIGNED NOT NULL DEFAULT '0',
+ `start` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
+ `end` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
+ `recurrence` varchar(255) DEFAULT NULL,
+ `title` varchar(255) NOT NULL,
+ `description` text NOT NULL,
+ `location` varchar(255) NOT NULL DEFAULT '',
+ `categories` varchar(255) NOT NULL DEFAULT '',
+ `all_day` tinyint(1) NOT NULL DEFAULT '0',
+ `free_busy` tinyint(1) NOT NULL DEFAULT '0',
+ `priority` tinyint(1) NOT NULL DEFAULT '0',
+ `sensitivity` tinyint(1) NOT NULL DEFAULT '0',
+ `alarms` varchar(255) DEFAULT NULL,
+ `attendees` text DEFAULT NULL,
+ `notifyat` datetime DEFAULT NULL,
+ PRIMARY KEY(`event_id`),
+ INDEX `uid_idx` (`uid`),
+ INDEX `recurrence_idx` (`recurrence_id`),
+ INDEX `calendar_notify_idx` (`calendar_id`,`notifyat`),
+ CONSTRAINT `fk_events_calendar_id` FOREIGN KEY (`calendar_id`)
+ REFERENCES `calendars`(`calendar_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `attachments` (
+ `attachment_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `event_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
+ `filename` varchar(255) NOT NULL DEFAULT '',
+ `mimetype` varchar(255) NOT NULL DEFAULT '',
+ `size` int(11) NOT NULL DEFAULT '0',
+ `data` longtext NOT NULL DEFAULT '',
+ PRIMARY KEY(`attachment_id`),
+ CONSTRAINT `fk_attachments_event_id` FOREIGN KEY (`event_id`)
+ REFERENCES `events`(`event_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `itipinvitations` (
+ `token` VARCHAR(64) NOT NULL,
+ `event_uid` VARCHAR(255) NOT NULL,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `event` TEXT NOT NULL,
+ `expires` DATETIME DEFAULT NULL,
+ `cancelled` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
+ PRIMARY KEY(`token`),
+ INDEX `uid_idx` (`user_id`,`event_uid`),
+ CONSTRAINT `fk_itipinvitations_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+INSERT INTO system (name, value) VALUES ('calendar-database-version', '2013011000.sql');
diff --git a/plugins/calendar/drivers/database/SQL/mysql/2012080600.sql b/plugins/calendar/drivers/database/SQL/mysql/2012080600.sql
new file mode 100644
index 0000000..f38e1cf
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/mysql/2012080600.sql
@@ -0,0 +1,3 @@
+-- MySQL database updates since version 0.7/0.8
+
+ALTER TABLE `events` ADD `sequence` int(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `changed`;
diff --git a/plugins/calendar/drivers/database/SQL/mysql/2013011000.sql b/plugins/calendar/drivers/database/SQL/mysql/2013011000.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/mysql/2013011000.sql
@@ -0,0 +1 @@
+-- empty
\ No newline at end of file
diff --git a/plugins/calendar/drivers/database/SQL/postgres.initial.sql b/plugins/calendar/drivers/database/SQL/postgres.initial.sql
new file mode 100644
index 0000000..e3ba497
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/postgres.initial.sql
@@ -0,0 +1,106 @@
+/**
+ * RoundCube Calendar
+ *
+ * Plugin to add a calendar to RoundCube.
+ *
+ * @version @package_version@
+ * @author Lazlo Westerhof
+ * @author Albert Lee
+ * @author Aleksander Machniak <machniak at kolabsys.com>
+ * @url http://rc-calendar.lazlo.me
+ * @licence GNU AGPL
+ * @copyright (c) 2010 Lazlo Westerhof - Netherlands
+ *
+ **/
+
+
+CREATE SEQUENCE calendar_ids
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+
+CREATE TABLE calendars (
+ calendar_id integer DEFAULT nextval('calendar_ids'::regclass) NOT NULL,
+ user_id integer NOT NULL
+ REFERENCES users (user_id) ON UPDATE CASCADE ON DELETE CASCADE,
+ name varchar(255) NOT NULL,
+ color varchar(8) NOT NULL,
+ showalarms smallint NOT NULL DEFAULT 1,
+ PRIMARY KEY (calendar_id)
+);
+
+CREATE INDEX calendars_user_id_idx ON calendars (user_id, name);
+
+
+CREATE SEQUENCE event_ids
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+
+CREATE TABLE events (
+ event_id integer DEFAULT nextval('event_ids'::regclass) NOT NULL,
+ calendar_id integer NOT NULL
+ REFERENCES calendars (calendar_id) ON UPDATE CASCADE ON DELETE CASCADE,
+ recurrence_id integer NOT NULL DEFAULT 0,
+ uid varchar(255) NOT NULL DEFAULT '',
+ created timestamp without time zone DEFAULT now() NOT NULL,
+ changed timestamp without time zone DEFAULT now(),
+ sequence integer NOT NULL DEFAULT 0,
+ "start" timestamp without time zone DEFAULT now() NOT NULL,
+ "end" timestamp without time zone DEFAULT now() NOT NULL,
+ recurrence varchar(255) DEFAULT NULL,
+ title character varying(255) NOT NULL,
+ description text NOT NULL,
+ location character varying(255) NOT NULL,
+ categories character varying(255) NOT NULL,
+ all_day smallint NOT NULL DEFAULT 0,
+ free_busy smallint NOT NULL DEFAULT 0,
+ priority smallint NOT NULL DEFAULT 0,
+ sensitivity smallint NOT NULL DEFAULT 0,
+ alarms varchar(255) DEFAULT NULL,
+ attendees text DEFAULT NULL,
+ notifyat timestamp without time zone DEFAULT NULL,
+ PRIMARY KEY (event_id)
+);
+
+CREATE INDEX events_calendar_id_notifyat_idx ON events (calendar_id, notifyat);
+CREATE INDEX events_uid_idx ON events (uid);
+CREATE INDEX events_recurrence_id_idx ON events (recurrence_id);
+
+
+CREATE SEQUENCE attachment_ids
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+
+CREATE TABLE attachments (
+ attachment_id integer DEFAULT nextval('attachment_ids'::regclass) NOT NULL,
+ event_id integer NOT NULL
+ REFERENCES events (event_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ filename varchar(255) NOT NULL DEFAULT '',
+ mimetype varchar(255) NOT NULL DEFAULT '',
+ size integer NOT NULL DEFAULT 0,
+ data text NOT NULL DEFAULT '',
+ PRIMARY KEY (attachment_id)
+);
+
+CREATE INDEX attachments_user_id_idx ON attachments (event_id);
+
+
+CREATE TABLE itipinvitations (
+ token varchar(64) NOT NULL,
+ event_uid varchar(255) NOT NULL,
+ user_id integer NOT NULL
+ REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ event TEXT NOT NULL,
+ expires timestamp without time zone DEFAULT NULL,
+ cancelled smallint NOT NULL DEFAULT 0,
+ PRIMARY KEY (token)
+);
+
+CREATE INDEX itipinvitations_user_id_event_uid_idx ON itipinvitations (user_id, event_uid);
+
+INSERT INTO system (name, value) VALUES ('calendar-database-version', '2013011000.sql');
diff --git a/plugins/calendar/drivers/database/SQL/postgres/2012080600.sql b/plugins/calendar/drivers/database/SQL/postgres/2012080600.sql
new file mode 100644
index 0000000..9a273e6
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/postgres/2012080600.sql
@@ -0,0 +1,3 @@
+-- Postgres database updates since version 0.7/0.8
+
+ALTER TABLE events ADD sequence integer NOT NULL DEFAULT 0;
diff --git a/plugins/calendar/drivers/database/SQL/postgres/2013011000.sql b/plugins/calendar/drivers/database/SQL/postgres/2013011000.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/postgres/2013011000.sql
@@ -0,0 +1 @@
+-- empty
\ No newline at end of file
diff --git a/plugins/calendar/drivers/database/SQL/sqlite.initial.sql b/plugins/calendar/drivers/database/SQL/sqlite.initial.sql
new file mode 100644
index 0000000..67ce8ad
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/sqlite.initial.sql
@@ -0,0 +1,76 @@
+/**
+ * Roundcube Calendar
+ *
+ * Plugin to add a calendar to Roundcube.
+ *
+ * @version @package_version@
+ * @author Lazlo Westerhof
+ * @author Thomas Bruederli
+ * @author Albert Lee
+ * @url http://rc-calendar.lazlo.me
+ * @licence GNU AGPL
+ * @copyright (c) 2010 Lazlo Westerhof - Netherlands
+ *
+ **/
+
+CREATE TABLE calendars (
+ calendar_id integer NOT NULL PRIMARY KEY,
+ user_id integer NOT NULL default '0',
+ name varchar(255) NOT NULL default '',
+ color varchar(255) NOT NULL default '',
+ showalarms tinyint(1) NOT NULL default '1',
+ CONSTRAINT fk_calendars_user_id FOREIGN KEY (user_id)
+ REFERENCES users(user_id)
+);
+
+CREATE TABLE events (
+ event_id integer NOT NULL PRIMARY KEY,
+ calendar_id integer NOT NULL default '0',
+ recurrence_id integer NOT NULL default '0',
+ uid varchar(255) NOT NULL default '',
+ created datetime NOT NULL default '1000-01-01 00:00:00',
+ changed datetime NOT NULL default '1000-01-01 00:00:00',
+ sequence integer NOT NULL default '0',
+ start datetime NOT NULL default '1000-01-01 00:00:00',
+ end datetime NOT NULL default '1000-01-01 00:00:00',
+ recurrence varchar(255) default NULL,
+ title varchar(255) NOT NULL,
+ description text NOT NULL,
+ location varchar(255) NOT NULL default '',
+ categories varchar(255) NOT NULL default '',
+ all_day tinyint(1) NOT NULL default '0',
+ free_busy tinyint(1) NOT NULL default '0',
+ priority tinyint(1) NOT NULL default '0',
+ sensitivity tinyint(1) NOT NULL default '0',
+ alarms varchar(255) default NULL,
+ attendees text default NULL,
+ notifyat datetime default NULL,
+ CONSTRAINT fk_events_calendar_id FOREIGN KEY (calendar_id)
+ REFERENCES calendars(calendar_id)
+);
+
+CREATE TABLE attachments (
+ attachment_id integer NOT NULL PRIMARY KEY,
+ event_id integer NOT NULL default '0',
+ filename varchar(255) NOT NULL default '',
+ mimetype varchar(255) NOT NULL default '',
+ size integer NOT NULL default '0',
+ data text NOT NULL default '',
+ CONSTRAINT fk_attachment_event_id FOREIGN KEY (event_id)
+ REFERENCES events(event_id)
+);
+
+CREATE TABLE itipinvitations (
+ token varchar(64) NOT NULL PRIMARY KEY,
+ event_uid varchar(255) NOT NULL,
+ user_id integer NOT NULL default '0',
+ event text NOT NULL,
+ expires datetime NOT NULL default '1000-01-01 00:00:00',
+ cancelled tinyint(1) NOT NULL default '0',
+ CONSTRAINT fk_itipinvitations_user_id FOREIGN KEY (user_id)
+ REFERENCES users(user_id)
+);
+
+CREATE INDEX ix_itipinvitations_uid ON itipinvitations(user_id, event_uid);
+
+INSERT INTO system (name, value) VALUES ('calendar-database-version', '2013011000.sql');
diff --git a/plugins/calendar/drivers/database/SQL/sqlite/2013011000.sql b/plugins/calendar/drivers/database/SQL/sqlite/2013011000.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/sqlite/2013011000.sql
@@ -0,0 +1 @@
+-- empty
\ No newline at end of file
diff --git a/plugins/calendar/drivers/database/sql/mysql.sql b/plugins/calendar/drivers/database/sql/mysql.sql
deleted file mode 100644
index e39acf4..0000000
--- a/plugins/calendar/drivers/database/sql/mysql.sql
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * Roundcube Calendar
- *
- * Plugin to add a calendar to Roundcube.
- *
- * @version @package_version@
- * @author Lazlo Westerhof
- * @author Thomas Bruederli
- * @url http://rc-calendar.lazlo.me
- * @licence GNU AGPL
- * @copyright (c) 2010 Lazlo Westerhof - Netherlands
- *
- **/
-
-CREATE TABLE `calendars` (
- `calendar_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
- `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
- `name` varchar(255) NOT NULL,
- `color` varchar(8) NOT NULL,
- `showalarms` tinyint(1) NOT NULL DEFAULT '1',
- PRIMARY KEY(`calendar_id`),
- INDEX `user_name_idx` (`user_id`, `name`),
- CONSTRAINT `fk_calendars_user_id` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-
-CREATE TABLE `events` (
- `event_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
- `calendar_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
- `recurrence_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
- `uid` varchar(255) NOT NULL DEFAULT '',
- `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
- `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
- `sequence` int(1) UNSIGNED NOT NULL DEFAULT '0',
- `start` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
- `end` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
- `recurrence` varchar(255) DEFAULT NULL,
- `title` varchar(255) NOT NULL,
- `description` text NOT NULL,
- `location` varchar(255) NOT NULL DEFAULT '',
- `categories` varchar(255) NOT NULL DEFAULT '',
- `all_day` tinyint(1) NOT NULL DEFAULT '0',
- `free_busy` tinyint(1) NOT NULL DEFAULT '0',
- `priority` tinyint(1) NOT NULL DEFAULT '0',
- `sensitivity` tinyint(1) NOT NULL DEFAULT '0',
- `alarms` varchar(255) DEFAULT NULL,
- `attendees` text DEFAULT NULL,
- `notifyat` datetime DEFAULT NULL,
- PRIMARY KEY(`event_id`),
- INDEX `uid_idx` (`uid`),
- INDEX `recurrence_idx` (`recurrence_id`),
- INDEX `calendar_notify_idx` (`calendar_id`,`notifyat`),
- CONSTRAINT `fk_events_calendar_id` FOREIGN KEY (`calendar_id`)
- REFERENCES `calendars`(`calendar_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-
-CREATE TABLE `attachments` (
- `attachment_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
- `event_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
- `filename` varchar(255) NOT NULL DEFAULT '',
- `mimetype` varchar(255) NOT NULL DEFAULT '',
- `size` int(11) NOT NULL DEFAULT '0',
- `data` longtext NOT NULL DEFAULT '',
- PRIMARY KEY(`attachment_id`),
- CONSTRAINT `fk_attachments_event_id` FOREIGN KEY (`event_id`)
- REFERENCES `events`(`event_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-
-CREATE TABLE `itipinvitations` (
- `token` VARCHAR(64) NOT NULL,
- `event_uid` VARCHAR(255) NOT NULL,
- `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
- `event` TEXT NOT NULL,
- `expires` DATETIME DEFAULT NULL,
- `cancelled` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
- PRIMARY KEY(`token`),
- INDEX `uid_idx` (`user_id`,`event_uid`),
- CONSTRAINT `fk_itipinvitations_user_id` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
diff --git a/plugins/calendar/drivers/database/sql/mysql.upgrade-0.7.sql b/plugins/calendar/drivers/database/sql/mysql.upgrade-0.7.sql
deleted file mode 100644
index 089b06d..0000000
--- a/plugins/calendar/drivers/database/sql/mysql.upgrade-0.7.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
- * MySQL database updates since version 0.7/0.8
- **/
-
-ALTER TABLE `events` ADD `sequence` int(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `changed`;
diff --git a/plugins/calendar/drivers/database/sql/postgres.upgrade-0.7.sql b/plugins/calendar/drivers/database/sql/postgres.upgrade-0.7.sql
deleted file mode 100644
index facb195..0000000
--- a/plugins/calendar/drivers/database/sql/postgres.upgrade-0.7.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
- * Postgres database updates since version 0.7/0.8
- **/
-
-ALTER TABLE events ADD sequence integer NOT NULL DEFAULT 0;
diff --git a/plugins/calendar/drivers/database/sql/postgresql.sql b/plugins/calendar/drivers/database/sql/postgresql.sql
deleted file mode 100644
index 8b88438..0000000
--- a/plugins/calendar/drivers/database/sql/postgresql.sql
+++ /dev/null
@@ -1,104 +0,0 @@
-/**
- * RoundCube Calendar
- *
- * Plugin to add a calendar to RoundCube.
- *
- * @version @package_version@
- * @author Lazlo Westerhof
- * @author Albert Lee
- * @author Aleksander Machniak <machniak at kolabsys.com>
- * @url http://rc-calendar.lazlo.me
- * @licence GNU AGPL
- * @copyright (c) 2010 Lazlo Westerhof - Netherlands
- *
- **/
-
-
-CREATE SEQUENCE calendar_ids
- INCREMENT BY 1
- NO MAXVALUE
- NO MINVALUE
- CACHE 1;
-
-CREATE TABLE calendars (
- calendar_id integer DEFAULT nextval('calendar_ids'::regclass) NOT NULL,
- user_id integer NOT NULL
- REFERENCES users (user_id) ON UPDATE CASCADE ON DELETE CASCADE,
- name varchar(255) NOT NULL,
- color varchar(8) NOT NULL,
- showalarms smallint NOT NULL DEFAULT 1,
- PRIMARY KEY (calendar_id)
-);
-
-CREATE INDEX calendars_user_id_idx ON calendars (user_id, name);
-
-
-CREATE SEQUENCE event_ids
- INCREMENT BY 1
- NO MAXVALUE
- NO MINVALUE
- CACHE 1;
-
-CREATE TABLE events (
- event_id integer DEFAULT nextval('event_ids'::regclass) NOT NULL,
- calendar_id integer NOT NULL
- REFERENCES calendars (calendar_id) ON UPDATE CASCADE ON DELETE CASCADE,
- recurrence_id integer NOT NULL DEFAULT 0,
- uid varchar(255) NOT NULL DEFAULT '',
- created timestamp without time zone DEFAULT now() NOT NULL,
- changed timestamp without time zone DEFAULT now(),
- sequence integer NOT NULL DEFAULT 0,
- "start" timestamp without time zone DEFAULT now() NOT NULL,
- "end" timestamp without time zone DEFAULT now() NOT NULL,
- recurrence varchar(255) DEFAULT NULL,
- title character varying(255) NOT NULL,
- description text NOT NULL,
- location character varying(255) NOT NULL,
- categories character varying(255) NOT NULL,
- all_day smallint NOT NULL DEFAULT 0,
- free_busy smallint NOT NULL DEFAULT 0,
- priority smallint NOT NULL DEFAULT 0,
- sensitivity smallint NOT NULL DEFAULT 0,
- alarms varchar(255) DEFAULT NULL,
- attendees text DEFAULT NULL,
- notifyat timestamp without time zone DEFAULT NULL,
- PRIMARY KEY (event_id)
-);
-
-CREATE INDEX events_calendar_id_notifyat_idx ON events (calendar_id, notifyat);
-CREATE INDEX events_uid_idx ON events (uid);
-CREATE INDEX events_recurrence_id_idx ON events (recurrence_id);
-
-
-CREATE SEQUENCE attachment_ids
- INCREMENT BY 1
- NO MAXVALUE
- NO MINVALUE
- CACHE 1;
-
-CREATE TABLE attachments (
- attachment_id integer DEFAULT nextval('attachment_ids'::regclass) NOT NULL,
- event_id integer NOT NULL
- REFERENCES events (event_id) ON DELETE CASCADE ON UPDATE CASCADE,
- filename varchar(255) NOT NULL DEFAULT '',
- mimetype varchar(255) NOT NULL DEFAULT '',
- size integer NOT NULL DEFAULT 0,
- data text NOT NULL DEFAULT '',
- PRIMARY KEY (attachment_id)
-);
-
-CREATE INDEX attachments_user_id_idx ON attachments (event_id);
-
-
-CREATE TABLE itipinvitations (
- token varchar(64) NOT NULL,
- event_uid varchar(255) NOT NULL,
- user_id integer NOT NULL
- REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
- event TEXT NOT NULL,
- expires timestamp without time zone DEFAULT NULL,
- cancelled smallint NOT NULL DEFAULT 0,
- PRIMARY KEY (token)
-);
-
-CREATE INDEX itipinvitations_user_id_event_uid_idx ON itipinvitations (user_id, event_uid);
diff --git a/plugins/calendar/drivers/database/sql/sqlite.sql b/plugins/calendar/drivers/database/sql/sqlite.sql
deleted file mode 100644
index 1debe54..0000000
--- a/plugins/calendar/drivers/database/sql/sqlite.sql
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Roundcube Calendar
- *
- * Plugin to add a calendar to Roundcube.
- *
- * @version @package_version@
- * @author Lazlo Westerhof
- * @author Thomas Bruederli
- * @author Albert Lee
- * @url http://rc-calendar.lazlo.me
- * @licence GNU AGPL
- * @copyright (c) 2010 Lazlo Westerhof - Netherlands
- *
- **/
-
-CREATE TABLE calendars (
- calendar_id integer NOT NULL PRIMARY KEY,
- user_id integer NOT NULL default '0',
- name varchar(255) NOT NULL default '',
- color varchar(255) NOT NULL default '',
- showalarms tinyint(1) NOT NULL default '1',
- CONSTRAINT fk_calendars_user_id FOREIGN KEY (user_id)
- REFERENCES users(user_id)
-);
-
-CREATE TABLE events (
- event_id integer NOT NULL PRIMARY KEY,
- calendar_id integer NOT NULL default '0',
- recurrence_id integer NOT NULL default '0',
- uid varchar(255) NOT NULL default '',
- created datetime NOT NULL default '1000-01-01 00:00:00',
- changed datetime NOT NULL default '1000-01-01 00:00:00',
- sequence integer NOT NULL default '0',
- start datetime NOT NULL default '1000-01-01 00:00:00',
- end datetime NOT NULL default '1000-01-01 00:00:00',
- recurrence varchar(255) default NULL,
- title varchar(255) NOT NULL,
- description text NOT NULL,
- location varchar(255) NOT NULL default '',
- categories varchar(255) NOT NULL default '',
- all_day tinyint(1) NOT NULL default '0',
- free_busy tinyint(1) NOT NULL default '0',
- priority tinyint(1) NOT NULL default '0',
- sensitivity tinyint(1) NOT NULL default '0',
- alarms varchar(255) default NULL,
- attendees text default NULL,
- notifyat datetime default NULL,
- CONSTRAINT fk_events_calendar_id FOREIGN KEY (calendar_id)
- REFERENCES calendars(calendar_id)
-);
-
-CREATE TABLE attachments (
- attachment_id integer NOT NULL PRIMARY KEY,
- event_id integer NOT NULL default '0',
- filename varchar(255) NOT NULL default '',
- mimetype varchar(255) NOT NULL default '',
- size integer NOT NULL default '0',
- data text NOT NULL default '',
- CONSTRAINT fk_attachment_event_id FOREIGN KEY (event_id)
- REFERENCES events(event_id)
-);
-
-CREATE TABLE itipinvitations (
- token varchar(64) NOT NULL PRIMARY KEY,
- event_uid varchar(255) NOT NULL,
- user_id integer NOT NULL default '0',
- event text NOT NULL,
- expires datetime NOT NULL default '1000-01-01 00:00:00',
- cancelled tinyint(1) NOT NULL default '0',
- CONSTRAINT fk_itipinvitations_user_id FOREIGN KEY (user_id)
- REFERENCES users(user_id)
-);
-
-CREATE INDEX ix_itipinvitations_uid ON itipinvitations(user_id, event_uid);
-
diff --git a/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql b/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
new file mode 100644
index 0000000..9c90433
--- /dev/null
+++ b/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
@@ -0,0 +1,32 @@
+/**
+ * Roundcube Calendar Kolab backend
+ *
+ * @version @package_version@
+ * @author Thomas Bruederli
+ * @licence GNU AGPL
+ **/
+
+CREATE TABLE IF NOT EXISTS `kolab_alarms` (
+ `event_id` VARCHAR(255) NOT NULL,
+ `user_id` int(10) UNSIGNED NOT NULL,
+ `notifyat` DATETIME DEFAULT NULL,
+ `dismissed` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
+ PRIMARY KEY(`event_id`),
+ CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */;
+
+CREATE TABLE IF NOT EXISTS `itipinvitations` (
+ `token` VARCHAR(64) NOT NULL,
+ `event_uid` VARCHAR(255) NOT NULL,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `event` TEXT NOT NULL,
+ `expires` DATETIME DEFAULT NULL,
+ `cancelled` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
+ PRIMARY KEY(`token`),
+ INDEX `uid_idx` (`event_uid`,`user_id`),
+ CONSTRAINT `fk_itipinvitations_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+INSERT INTO system (name, value) VALUES ('calendar-kolab-version', '2013011000.sql');
diff --git a/plugins/calendar/drivers/kolab/SQL/mysql.sql b/plugins/calendar/drivers/kolab/SQL/mysql.sql
deleted file mode 100644
index 7a93d0a..0000000
--- a/plugins/calendar/drivers/kolab/SQL/mysql.sql
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Roundcube Calendar Kolab backend
- *
- * @version @package_version@
- * @author Thomas Bruederli
- * @licence GNU AGPL
- **/
-
-CREATE TABLE IF NOT EXISTS `kolab_alarms` (
- `event_id` VARCHAR(255) NOT NULL,
- `user_id` int(10) UNSIGNED NOT NULL,
- `notifyat` DATETIME DEFAULT NULL,
- `dismissed` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
- PRIMARY KEY(`event_id`),
- CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) /*!40000 ENGINE=INNODB */;
-
-CREATE TABLE IF NOT EXISTS `itipinvitations` (
- `token` VARCHAR(64) NOT NULL,
- `event_uid` VARCHAR(255) NOT NULL,
- `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
- `event` TEXT NOT NULL,
- `expires` DATETIME DEFAULT NULL,
- `cancelled` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
- PRIMARY KEY(`token`),
- INDEX `uid_idx` (`event_uid`,`user_id`),
- CONSTRAINT `fk_itipinvitations_user_id` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-
diff --git a/plugins/calendar/drivers/kolab/SQL/mysql.upgrade-0.7.sql b/plugins/calendar/drivers/kolab/SQL/mysql.upgrade-0.7.sql
deleted file mode 100644
index da567b6..0000000
--- a/plugins/calendar/drivers/kolab/SQL/mysql.upgrade-0.7.sql
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Kolab backend SQL updates
- **/
-
-DROP TABLE IF EXISTS `kolab_alarms`;
-
-CREATE TABLE `kolab_alarms` (
- `event_id` VARCHAR(255) NOT NULL,
- `user_id` int(10) UNSIGNED NOT NULL,
- `notifyat` DATETIME DEFAULT NULL,
- `dismissed` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
- PRIMARY KEY(`event_id`),
- CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) /*!40000 ENGINE=INNODB */;
diff --git a/plugins/calendar/drivers/kolab/SQL/mysql/2012080600.sql b/plugins/calendar/drivers/kolab/SQL/mysql/2012080600.sql
new file mode 100644
index 0000000..5c9f1ae
--- /dev/null
+++ b/plugins/calendar/drivers/kolab/SQL/mysql/2012080600.sql
@@ -0,0 +1,11 @@
+DROP TABLE IF EXISTS `kolab_alarms`;
+
+CREATE TABLE `kolab_alarms` (
+ `event_id` VARCHAR(255) NOT NULL,
+ `user_id` int(10) UNSIGNED NOT NULL,
+ `notifyat` DATETIME DEFAULT NULL,
+ `dismissed` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
+ PRIMARY KEY(`event_id`),
+ CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */;
diff --git a/plugins/calendar/drivers/kolab/SQL/mysql/2013011000.sql b/plugins/calendar/drivers/kolab/SQL/mysql/2013011000.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/plugins/calendar/drivers/kolab/SQL/mysql/2013011000.sql
@@ -0,0 +1 @@
+-- empty
\ No newline at end of file
diff --git a/plugins/libkolab/README b/plugins/libkolab/README
index 7631220..2f94839 100644
--- a/plugins/libkolab/README
+++ b/plugins/libkolab/README
@@ -15,15 +15,11 @@ REQUIREMENTS
* PEAR: HTTP/Request2
* PEAR: Net/URL2
-* Optional for old format support:
- Horde Kolab_Format package and all of its dependencies
- which are at least Horde_(Browser,DOM,NLS,String,Utils)
-
INSTALLATION
------------
To use local cache you need to create a dedicated table in Roundcube's database.
-To do so, execute the SQL commands in SQL/<yourdatabase>.sql
+To do so, execute the SQL commands in SQL/<yourdatabase>.initial.sql
CONFIGURATION
diff --git a/plugins/libkolab/SQL/mysql.initial.sql b/plugins/libkolab/SQL/mysql.initial.sql
new file mode 100644
index 0000000..8603bc8
--- /dev/null
+++ b/plugins/libkolab/SQL/mysql.initial.sql
@@ -0,0 +1,27 @@
+/**
+ * libkolab database schema
+ *
+ * @version @package_version@
+ * @author Thomas Bruederli
+ * @licence GNU AGPL
+ **/
+
+DROP TABLE IF EXISTS `kolab_cache`;
+
+CREATE TABLE `kolab_cache` (
+ `resource` VARCHAR(255) CHARACTER SET ascii NOT NULL,
+ `type` VARCHAR(32) CHARACTER SET ascii 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,
+ `dtstart` DATETIME,
+ `dtend` DATETIME,
+ `tags` VARCHAR(255) NOT NULL,
+ `words` TEXT NOT NULL,
+ PRIMARY KEY(`resource`,`type`,`msguid`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+INSERT INTO `system` (`name`, `value`) VALUES ('libkolab-version', '2013011000');
diff --git a/plugins/libkolab/SQL/mysql.sql b/plugins/libkolab/SQL/mysql.sql
deleted file mode 100644
index 244ab3d..0000000
--- a/plugins/libkolab/SQL/mysql.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * libkolab database schema
- *
- * @version @package_version@
- * @author Thomas Bruederli
- * @licence GNU AGPL
- **/
-
-DROP TABLE IF EXISTS `kolab_cache`;
-
-CREATE TABLE `kolab_cache` (
- `resource` VARCHAR(255) CHARACTER SET ascii NOT NULL,
- `type` VARCHAR(32) CHARACTER SET ascii 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,
- `dtstart` DATETIME,
- `dtend` DATETIME,
- `tags` VARCHAR(255) NOT NULL,
- `words` TEXT NOT NULL,
- PRIMARY KEY(`resource`,`type`,`msguid`)
-) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
diff --git a/plugins/libkolab/SQL/mysql/2013011000.sql b/plugins/libkolab/SQL/mysql/2013011000.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/plugins/libkolab/SQL/mysql/2013011000.sql
@@ -0,0 +1 @@
+-- empty
\ No newline at end of file
diff --git a/plugins/libkolab/UPGRADING b/plugins/libkolab/UPGRADING
new file mode 100644
index 0000000..e7f04d8
--- /dev/null
+++ b/plugins/libkolab/UPGRADING
@@ -0,0 +1,9 @@
+UPGRADING instructions
+======================
+
+To update database schema please run in Roundcube bin/ directory:
+
+updatedb.sh --package=libkolab --version=<version> --dir=../plugins/libkolab/SQL
+
+[*] Replace <version> with Roundcube version e.g. 0.7.3
+[*] Roundcube should be upgraded before plugin upgrades
diff --git a/plugins/tasklist/UPGRADING b/plugins/tasklist/UPGRADING
new file mode 100644
index 0000000..41343fb
--- /dev/null
+++ b/plugins/tasklist/UPGRADING
@@ -0,0 +1,17 @@
+UPGRADING instructions
+======================
+
+To update database schema, depending on the driver you're using,
+please run in Roundcube bin/ directory:
+
+updatedb.sh --package=tasklist-<driver> --version=<version> \
+ --dir=../plugins/tasklist/drivers/<driver>/SQL
+
+[*] Replace <driver> with "database" or "kolab" (without quotes)
+[*] Replace <version> with Roundcube version e.g. 0.7.3
+[*] Roundcube should be upgraded before plugin upgrades
+
+Example:
+
+updatedb.sh --package=tasklist-database --version=0.9-beta \
+ --dir=../plugins/tasklist/drivers/database/SQL
diff --git a/plugins/tasklist/drivers/database/SQL/mysql.initial.sql b/plugins/tasklist/drivers/database/SQL/mysql.initial.sql
new file mode 100644
index 0000000..5e71788
--- /dev/null
+++ b/plugins/tasklist/drivers/database/SQL/mysql.initial.sql
@@ -0,0 +1,51 @@
+/**
+ * Roundcube Tasklist plugin database
+ *
+ * @version @package_version@
+ * @author Thomas Bruederli
+ * @licence GNU AGPL
+ * @copyright (C) 2012, Kolab Systems AG
+ */
+
+CREATE TABLE `tasklists` (
+ `tasklist_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) unsigned NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `color` varchar(8) NOT NULL,
+ `showalarms` tinyint(2) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`tasklist_id`),
+ KEY `user_id` (`user_id`),
+ CONSTRAINT `fk_tasklist_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `tasks` (
+ `task_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `tasklist_id` int(10) unsigned NOT NULL,
+ `parent_id` int(10) unsigned DEFAULT NULL,
+ `uid` varchar(255) NOT NULL,
+ `created` datetime NOT NULL,
+ `changed` datetime NOT NULL,
+ `del` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `title` varchar(255) NOT NULL,
+ `description` text,
+ `tags` text,
+ `date` varchar(10) DEFAULT NULL,
+ `time` varchar(5) DEFAULT NULL,
+ `startdate` varchar(10) DEFAULT NULL,
+ `starttime` varchar(5) DEFAULT NULL,
+ `flagged` tinyint(4) NOT NULL DEFAULT '0',
+ `complete` float NOT NULL DEFAULT '0',
+ `alarms` varchar(255) DEFAULT NULL,
+ `recurrence` varchar(255) DEFAULT NULL,
+ `organizer` varchar(255) DEFAULT NULL,
+ `attendees` text,
+ `notify` datetime DEFAULT NULL,
+ PRIMARY KEY (`task_id`),
+ KEY `tasklisting` (`tasklist_id`,`del`,`date`),
+ KEY `uid` (`uid`),
+ CONSTRAINT `fk_tasks_tasklist_id` FOREIGN KEY (`tasklist_id`)
+ REFERENCES `tasklists`(`tasklist_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+INSERT INTO `system` (`name`, `value`) VALUES ('tasklist-database-version', '2013011000');
diff --git a/plugins/tasklist/drivers/database/SQL/mysql.sql b/plugins/tasklist/drivers/database/SQL/mysql.sql
deleted file mode 100644
index b6fd2ce..0000000
--- a/plugins/tasklist/drivers/database/SQL/mysql.sql
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Roundcube Tasklist plugin database
- *
- * @version @package_version@
- * @author Thomas Bruederli
- * @licence GNU AGPL
- * @copyright (C) 2012, Kolab Systems AG
- */
-
-CREATE TABLE `tasklists` (
- `tasklist_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `user_id` int(10) unsigned NOT NULL,
- `name` varchar(255) NOT NULL,
- `color` varchar(8) NOT NULL,
- `showalarms` tinyint(2) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`tasklist_id`),
- KEY `user_id` (`user_id`),
- CONSTRAINT `fk_tasklist_user_id` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) /*!40000 ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci */;
-
-CREATE TABLE `tasks` (
- `task_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `tasklist_id` int(10) unsigned NOT NULL,
- `parent_id` int(10) unsigned DEFAULT NULL,
- `uid` varchar(255) NOT NULL,
- `created` datetime NOT NULL,
- `changed` datetime NOT NULL,
- `del` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `title` varchar(255) NOT NULL,
- `description` text,
- `tags` text,
- `date` varchar(10) DEFAULT NULL,
- `time` varchar(5) DEFAULT NULL,
- `startdate` varchar(10) DEFAULT NULL,
- `starttime` varchar(5) DEFAULT NULL,
- `flagged` tinyint(4) NOT NULL DEFAULT '0',
- `complete` float NOT NULL DEFAULT '0',
- `alarms` varchar(255) DEFAULT NULL,
- `recurrence` varchar(255) DEFAULT NULL,
- `organizer` varchar(255) DEFAULT NULL,
- `attendees` text,
- `notify` datetime DEFAULT NULL,
- PRIMARY KEY (`task_id`),
- KEY `tasklisting` (`tasklist_id`,`del`,`date`),
- KEY `uid` (`uid`),
- CONSTRAINT `fk_tasks_tasklist_id` FOREIGN KEY (`tasklist_id`)
- REFERENCES `tasklists`(`tasklist_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) /*!40000 ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci */;
diff --git a/plugins/tasklist/drivers/database/SQL/mysql/2013011000.sql b/plugins/tasklist/drivers/database/SQL/mysql/2013011000.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/plugins/tasklist/drivers/database/SQL/mysql/2013011000.sql
@@ -0,0 +1 @@
+-- empty
\ No newline at end of file
More information about the commits
mailing list