Support DAV servers that use ctag length up to 128 characters (T7282)

This commit is contained in:
Aleksander Machniak 2023-11-12 11:07:36 +01:00
parent f6a4cdacaa
commit de2609e6d0
6 changed files with 31 additions and 11 deletions

View file

@ -7,9 +7,8 @@ CREATE TABLE `kolab_folders` (
`resource` VARCHAR(255) BINARY NOT NULL,
`type` VARCHAR(32) NOT NULL,
`synclock` INT(10) NOT NULL DEFAULT '0',
`ctag` VARCHAR(40) DEFAULT NULL,
`ctag` VARCHAR(128) DEFAULT NULL,
`changed` DATETIME DEFAULT NULL,
`objectcount` BIGINT DEFAULT NULL,
PRIMARY KEY(`folder_id`),
INDEX `resource_type` (`resource`, `type`)
) ROW_FORMAT=DYNAMIC ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
@ -230,4 +229,4 @@ CREATE TABLE `kolab_cache_dav_task` (
SET FOREIGN_KEY_CHECKS=1;
REPLACE INTO `system` (`name`, `value`) VALUES ('libkolab-version', '2022122800');
REPLACE INTO `system` (`name`, `value`) VALUES ('libkolab-version', '2023111200');

View file

@ -0,0 +1,2 @@
ALTER TABLE `kolab_folders` MODIFY `ctag` varchar(128);
ALTER TABLE `kolab_folders` DROP COLUMN `objectcount`;

View file

@ -9,9 +9,8 @@ CREATE TABLE kolab_folders (
resource varchar(255) NOT NULL,
"type" varchar(32) NOT NULL,
synclock integer NOT NULL DEFAULT 0,
ctag varchar(40) DEFAULT NULL,
changed timestamp with time zone DEFAULT NULL,
objectcount integer DEFAULT NULL
ctag varchar(128) DEFAULT NULL,
changed timestamp with time zone DEFAULT NULL
);
CREATE INDEX kolab_folders_resource_type_idx ON kolab_folders(resource, "type");
@ -204,4 +203,4 @@ CREATE TABLE kolab_cache_dav_task (
PRIMARY KEY(folder_id, uid)
);
INSERT INTO "system" (name, "value") VALUES ('libkolab-version', '2022122800');
INSERT INTO "system" (name, "value") VALUES ('libkolab-version', '2023111200');

View file

@ -0,0 +1,2 @@
ALTER TABLE kolab_folders ALTER COLUMN ctag TYPE varchar(128);
ALTER TABLE kolab_folders DROP COLUMN objectcount;

View file

@ -3,9 +3,8 @@ CREATE TABLE kolab_folders (
resource VARCHAR(255) NOT NULL,
type VARCHAR(32) NOT NULL,
synclock INTEGER NOT NULL DEFAULT '0',
ctag VARCHAR(40) DEFAULT NULL,
changed DATETIME DEFAULT NULL,
objectcount INTEGER DEFAULT NULL
ctag VARCHAR(128) DEFAULT NULL,
changed DATETIME DEFAULT NULL
);
CREATE INDEX ix_resource_type ON kolab_folders(resource, type);
@ -187,4 +186,4 @@ CREATE TABLE kolab_cache_dav_task (
PRIMARY KEY(folder_id, uid)
);
INSERT INTO system (name, value) VALUES ('libkolab-version', '2022122800');
INSERT INTO system (name, value) VALUES ('libkolab-version', '2023111200');

View file

@ -0,0 +1,19 @@
PRAGMA foreign_keys=OFF;
ALTER TABLE kolab_folders RENAME TO kolab_folders_old;
CREATE TABLE kolab_folders (
folder_id INTEGER NOT NULL PRIMARY KEY,
resource VARCHAR(255) NOT NULL,
type VARCHAR(32) NOT NULL,
synclock INTEGER NOT NULL DEFAULT '0',
ctag VARCHAR(128) DEFAULT NULL,
changed DATETIME DEFAULT NULL
);
INSERT INTO kolab_folders (folder_id, resource, type, synclock, ctag, changed)
SELECT folder_id, resource, type, synclock, ctag, changed FROM kolab_folders_old;
CREATE INDEX ix_resource_type ON kolab_folders(resource, type);
DROP TABLE kolab_folders_old;