Page MenuHomePhorge

No OneTemporary

Size
21 KB
Referenced Files
None
Subscribers
None
diff --git a/plugins/calendar/drivers/database/SQL/mysql.initial.sql b/plugins/calendar/drivers/database/SQL/mysql.initial.sql
index 9d3371e2..e29740bb 100644
--- a/plugins/calendar/drivers/database/SQL/mysql.initial.sql
+++ b/plugins/calendar/drivers/database/SQL/mysql.initial.sql
@@ -1,84 +1,84 @@
/**
* Roundcube Calendar
*
* Plugin to add a calendar to Roundcube.
*
* @author Lazlo Westerhof
* @author Thomas Bruederli
* @licence GNU AGPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
* @copyright (c) 2014 Kolab Systems AG
*/
CREATE TABLE IF NOT EXISTS `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 */;
+) ROW_FORMAT=DYNAMIC ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `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 '',
`instance` varchar(16) NOT NULL DEFAULT '',
`isexception` tinyint(1) NOT NULL DEFAULT '0',
`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 '',
`url` 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',
`status` varchar(32) NOT NULL DEFAULT '',
`alarms` text 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 */;
+) ROW_FORMAT=DYNAMIC ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `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,
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 */;
+) ROW_FORMAT=DYNAMIC ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
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` (`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 */;
+) ROW_FORMAT=DYNAMIC ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-REPLACE INTO `system` (`name`, `value`) VALUES ('calendar-database-version', '2015022700');
+REPLACE INTO `system` (`name`, `value`) VALUES ('calendar-database-version', '2021102600');
diff --git a/plugins/calendar/drivers/database/SQL/mysql/2021102600.sql b/plugins/calendar/drivers/database/SQL/mysql/2021102600.sql
new file mode 100644
index 00000000..abee5904
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/mysql/2021102600.sql
@@ -0,0 +1,24 @@
+-- changing table format and dropping foreign keys is needed for some versions of MySQL
+ALTER TABLE `calendars` DROP FOREIGN KEY `fk_calendars_user_id`;
+ALTER TABLE `events` DROP FOREIGN KEY`fk_events_calendar_id`;
+ALTER TABLE `attachments` DROP FOREIGN KEY`fk_attachments_event_id`;
+ALTER TABLE `itipinvitations` DROP FOREIGN KEY`fk_itipinvitations_user_id`;
+
+ALTER TABLE `calendars` ROW_FORMAT=DYNAMIC;
+ALTER TABLE `events` ROW_FORMAT=DYNAMIC;
+ALTER TABLE `attachments` ROW_FORMAT=DYNAMIC;
+ALTER TABLE `itipinvitations` ROW_FORMAT=DYNAMIC;
+
+ALTER TABLE `calendars` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+ALTER TABLE `events` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+ALTER TABLE `attachments` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+ALTER TABLE `itipinvitations` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+
+ALTER TABLE `calendars` ADD CONSTRAINT `fk_calendars_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE `events` ADD CONSTRAINT `fk_events_calendar_id` FOREIGN KEY (`calendar_id`)
+ REFERENCES `calendars`(`calendar_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE `attachments` ADD CONSTRAINT `fk_attachments_event_id` FOREIGN KEY (`event_id`)
+ REFERENCES `events`(`event_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE `itipinvitations` ADD CONSTRAINT `fk_itipinvitations_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
diff --git a/plugins/calendar/drivers/database/SQL/postgres.initial.sql b/plugins/calendar/drivers/database/SQL/postgres.initial.sql
index 37fec95f..96efbb86 100644
--- a/plugins/calendar/drivers/database/SQL/postgres.initial.sql
+++ b/plugins/calendar/drivers/database/SQL/postgres.initial.sql
@@ -1,107 +1,107 @@
/**
* RoundCube Calendar
*
* Plugin to add a calendar to RoundCube.
*
* @author Lazlo Westerhof
* @author Albert Lee
* @author Aleksander Machniak <machniak@kolabsys.com>
* @licence GNU AGPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
* @copyright (c) 2014 Kolab Systems AG
*/
CREATE SEQUENCE calendars_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE calendars (
calendar_id integer DEFAULT nextval('calendars_seq'::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 events_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE events (
event_id integer DEFAULT nextval('events_seq'::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 '',
instance varchar(16) NOT NULL DEFAULT '',
isexception smallint NOT NULL DEFAULT '0',
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 DEFAULT '',
description text NOT NULL DEFAULT '',
location character varying(255) NOT NULL DEFAULT '',
categories character varying(255) NOT NULL DEFAULT '',
url character varying(255) NOT NULL DEFAULT '',
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,
status character varying(32) NOT NULL DEFAULT '',
alarms text 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 attachments_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE attachments (
attachment_id integer DEFAULT nextval('attachments_seq'::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', '2015022700');
+INSERT INTO system (name, value) VALUES ('calendar-database-version', '2021102600');
diff --git a/plugins/calendar/drivers/database/SQL/postgres/2021102600.sql b/plugins/calendar/drivers/database/SQL/postgres/2021102600.sql
new file mode 100644
index 00000000..0711ed9d
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/postgres/2021102600.sql
@@ -0,0 +1 @@
+-- empty
diff --git a/plugins/calendar/drivers/database/SQL/sqlite.initial.sql b/plugins/calendar/drivers/database/SQL/sqlite.initial.sql
index a9aecdba..d4fdb368 100644
--- a/plugins/calendar/drivers/database/SQL/sqlite.initial.sql
+++ b/plugins/calendar/drivers/database/SQL/sqlite.initial.sql
@@ -1,78 +1,78 @@
/**
* Roundcube Calendar
*
* Plugin to add a calendar to Roundcube.
*
* @author Lazlo Westerhof
* @author Thomas Bruederli
* @author Albert Lee
* @licence GNU AGPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
* @copyright (c) 2014 Kolab Systems AG
*/
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 '',
instance varchar(16) NOT NULL default '',
isexception tinyint(1) NOT NULL default '0',
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 '',
url 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',
status varchar(32) NOT NULL default '',
alarms text 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', '2015022700');
+INSERT INTO system (name, value) VALUES ('calendar-database-version', '2021102600');
diff --git a/plugins/calendar/drivers/database/SQL/sqlite/2021102600.sql b/plugins/calendar/drivers/database/SQL/sqlite/2021102600.sql
new file mode 100644
index 00000000..0711ed9d
--- /dev/null
+++ b/plugins/calendar/drivers/database/SQL/sqlite/2021102600.sql
@@ -0,0 +1 @@
+-- empty
diff --git a/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql b/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
index 33c4e26a..25a0759b 100644
--- a/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
+++ b/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
@@ -1,31 +1,31 @@
/**
* Roundcube Calendar Kolab backend
*
* @author Thomas Bruederli
* @licence GNU AGPL
**/
CREATE TABLE IF NOT EXISTS `kolab_alarms` (
`alarm_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(`alarm_id`,`user_id`),
CONSTRAINT `fk_kolab_alarms_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 */;
+) ROW_FORMAT=DYNAMIC ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
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 */;
+) ROW_FORMAT=DYNAMIC ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-REPLACE INTO `system` (`name`, `value`) VALUES ('calendar-kolab-version', '2014041700');
+REPLACE INTO `system` (`name`, `value`) VALUES ('calendar-kolab-version', '2021102600');
diff --git a/plugins/calendar/drivers/kolab/SQL/mysql/2021102600.sql b/plugins/calendar/drivers/kolab/SQL/mysql/2021102600.sql
new file mode 100644
index 00000000..c097e7ca
--- /dev/null
+++ b/plugins/calendar/drivers/kolab/SQL/mysql/2021102600.sql
@@ -0,0 +1,14 @@
+-- changing table format and dropping foreign keys is needed for some versions of MySQL
+ALTER TABLE `kolab_alarms` DROP FOREIGN KEY `fk_kolab_alarms_user_id`;
+ALTER TABLE `itipinvitations` DROP FOREIGN KEY`fk_itipinvitations_user_id`;
+
+ALTER TABLE `kolab_alarms` ROW_FORMAT=DYNAMIC;
+ALTER TABLE `itipinvitations` ROW_FORMAT=DYNAMIC;
+
+ALTER TABLE `kolab_alarms` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+ALTER TABLE `itipinvitations` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+
+ALTER TABLE `kolab_alarms` ADD CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE `itipinvitations` ADD CONSTRAINT `fk_itipinvitations_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
diff --git a/plugins/libkolab/README b/plugins/libkolab/README
index a4afe326..c7785fe3 100644
--- a/plugins/libkolab/README
+++ b/plugins/libkolab/README
@@ -1,40 +1,39 @@
libkolab plugin to access to Kolab groupware data
=================================================
The contained library classes establish a connection to the Kolab server
and manage the access to the Kolab groupware objects stored in various
IMAP folders. For reading and writing these objects, the PHP bindings of
the libkolabxml library are used.
This plugin also provides Elastic/Larry skin support for Kolab plugins.
REQUIREMENTS
------------
* libkolabxml PHP bindings
- kolabformat.so loaded into PHP
- kolabformat.php placed somewhere in the include_path
* PEAR: HTTP/Request2
* PEAR: Net/URL2
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>.initial.sql
CONFIGURATION
-------------
Rename config.inc.php.dist to config.inc.php in the plugin folder.
For available configuration options see config.inc.php.dist file.
IMPORTANT
---------
-
This plugin doesn't work with the Classic skin of Roundcube because no
templates are available for that skin.
Use Roundcube `skins_allowed` option to limit skins available to the user
or remove incompatible skins from the skins folder.
diff --git a/plugins/tasklist/drivers/database/SQL/mysql.initial.sql b/plugins/tasklist/drivers/database/SQL/mysql.initial.sql
index d6dbd222..6751122f 100644
--- a/plugins/tasklist/drivers/database/SQL/mysql.initial.sql
+++ b/plugins/tasklist/drivers/database/SQL/mysql.initial.sql
@@ -1,51 +1,51 @@
/**
* Roundcube Tasklist plugin database
*
* @author Thomas Bruederli
* @licence GNU AGPL
* @copyright (C) 2012, Kolab Systems AG
*/
CREATE TABLE IF NOT EXISTS `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 */;
+) ROW_FORMAT=DYNAMIC ENGINE=InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `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',
`status` enum('','NEEDS-ACTION','IN-PROCESS','COMPLETED','CANCELLED') NOT NULL DEFAULT '',
`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 */;
+) ROW_FORMAT=DYNAMIC ENGINE=InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-REPLACE INTO `system` (`name`, `value`) VALUES ('tasklist-database-version', '2014051900');
+REPLACE INTO `system` (`name`, `value`) VALUES ('tasklist-database-version', '2021102600');
diff --git a/plugins/tasklist/drivers/database/SQL/mysql/2021102600.sql b/plugins/tasklist/drivers/database/SQL/mysql/2021102600.sql
new file mode 100644
index 00000000..8a8c6af1
--- /dev/null
+++ b/plugins/tasklist/drivers/database/SQL/mysql/2021102600.sql
@@ -0,0 +1,14 @@
+-- changing table format and dropping foreign keys is needed for some versions of MySQL
+ALTER TABLE `tasklists` DROP FOREIGN KEY `fk_tasklists_user_id`;
+ALTER TABLE `tasks` DROP FOREIGN KEY`fk_tasks_tasklist_id`;
+
+ALTER TABLE `tasklists` ROW_FORMAT=DYNAMIC;
+ALTER TABLE `tasks` ROW_FORMAT=DYNAMIC;
+
+ALTER TABLE `tasklists` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+ALTER TABLE `tasks` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+
+ALTER TABLE `tasklists` ADD CONSTRAINT `fk_tasklist_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE `tasks` ADD CONSTRAINT `fk_tasks_tasklist_id` FOREIGN KEY (`tasklist_id`)
+ REFERENCES `tasklists`(`tasklist_id`) ON DELETE CASCADE ON UPDATE CASCADE;

File Metadata

Mime Type
text/x-diff
Expires
Mon, Sep 28, 9:56 PM (13 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1455017
Default Alt Text
(21 KB)

Event Timeline