[schema] Add SQL upgrade script from 7.1 to 7.2; For ONLYOFFICE/DocumentServer#1911

This commit is contained in:
Sergey Konovalov
2022-09-25 19:05:38 +03:00
committed by Sergey Konovalov
parent 6dcc1dc3ac
commit 59b5ef7b80
3 changed files with 54 additions and 1 deletions

View File

@ -3487,7 +3487,7 @@ exports.install = function(server, callbackFunction) {
}
}
});
if (-1 !== index) {
if (-1 !== index || 0 === res.length) {
callbackFunction();
} else {
operationContext.global.logger.error('DB table "%s" does not contain %s column, columns info: %j', tableName, tableRequiredColumn, res);

View File

@ -0,0 +1,32 @@
DELIMITER DLM00
DROP PROCEDURE IF EXISTS upgrade720 DLM00
CREATE PROCEDURE upgrade720()
BEGIN
IF NOT EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'task_result' AND COLUMN_NAME = 'tenant') THEN
SET SQL_SAFE_UPDATES=0;
ALTER TABLE `task_result` ADD COLUMN `tenant` VARCHAR(255) NULL FIRST;
UPDATE `task_result` SET `tenant`='localhost' WHERE `tenant` IS NULL;
ALTER TABLE `task_result` CHANGE COLUMN `tenant` `tenant` VARCHAR(255) NOT NULL;
ALTER TABLE `task_result` DROP PRIMARY KEY;
ALTER TABLE `task_result` ADD PRIMARY KEY (`tenant`, `id`);
SET SQL_SAFE_UPDATES=1;
END IF;
IF NOT EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'doc_changes' AND COLUMN_NAME = 'tenant') THEN
SET SQL_SAFE_UPDATES=0;
ALTER TABLE `doc_changes` ADD COLUMN `tenant` VARCHAR(255) NULL FIRST;
UPDATE `doc_changes` SET `tenant`='localhost' WHERE `tenant` IS NULL;
ALTER TABLE `doc_changes` CHANGE COLUMN `tenant` `tenant` VARCHAR(255) NOT NULL;
ALTER TABLE `doc_changes` DROP PRIMARY KEY;
ALTER TABLE `doc_changes` ADD PRIMARY KEY (`tenant`, `id`,`change_id`);
SET SQL_SAFE_UPDATES=1;
END IF;
END DLM00
CALL upgrade720() DLM00
DELIMITER ;

View File

@ -0,0 +1,21 @@
DO $$
BEGIN
BEGIN
ALTER TABLE "task_result" ADD COLUMN "tenant" varchar(255) COLLATE "default" NOT NULL DEFAULT 'localhost';
ALTER TABLE "task_result" ALTER COLUMN "tenant" DROP DEFAULT;
ALTER TABLE "task_result" DROP CONSTRAINT IF EXISTS task_result_pkey;
ALTER TABLE "task_result" ADD PRIMARY KEY ("tenant", "id");
EXCEPTION
WHEN duplicate_column THEN RAISE NOTICE 'column `tenant` already exists.';
END;
BEGIN
ALTER TABLE "doc_changes" ADD COLUMN "tenant" varchar(255) COLLATE "default" NOT NULL DEFAULT 'localhost';
ALTER TABLE "doc_changes" ALTER COLUMN "tenant" DROP DEFAULT;
ALTER TABLE "doc_changes" DROP CONSTRAINT IF EXISTS doc_changes_pkey;
ALTER TABLE "doc_changes" ADD PRIMARY KEY ("tenant", "id", "change_id");
EXCEPTION
WHEN duplicate_column THEN RAISE NOTICE 'column `tenant` already exists.';
END;
END;
$$