diff --git a/DocService/sources/DocsCoServer.js b/DocService/sources/DocsCoServer.js index 14a42ca1..82f8323b 100644 --- a/DocService/sources/DocsCoServer.js +++ b/DocService/sources/DocsCoServer.js @@ -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); diff --git a/schema/mysql/upgrade/upgradev720.sql b/schema/mysql/upgrade/upgradev720.sql new file mode 100644 index 00000000..51e483c2 --- /dev/null +++ b/schema/mysql/upgrade/upgradev720.sql @@ -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 ; diff --git a/schema/postgresql/upgrade/upgradev720.sql b/schema/postgresql/upgrade/upgradev720.sql new file mode 100644 index 00000000..09799580 --- /dev/null +++ b/schema/postgresql/upgrade/upgradev720.sql @@ -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; +$$