Don't use `IF (NOT) EXITS` SQL commands in upgrade scripts

This commit is contained in:
Yonas Habteab 2023-09-15 11:28:54 +02:00 committed by Johannes Meyer
parent dc738ec4ce
commit 6a4314120b
2 changed files with 4 additions and 8 deletions

View File

@ -1,13 +1,11 @@
ALTER TABLE icingaweb_schema ALTER TABLE icingaweb_schema
MODIFY COLUMN timestamp bigint unsigned NOT NULL, MODIFY COLUMN timestamp bigint unsigned NOT NULL,
MODIFY COLUMN version varchar(64) NOT NULL, MODIFY COLUMN version varchar(64) NOT NULL,
ADD COLUMN IF NOT EXISTS success enum('n', 'y') DEFAULT NULL, ADD COLUMN success enum('n', 'y') DEFAULT NULL,
ADD COLUMN IF NOT EXISTS reason text DEFAULT NULL, ADD COLUMN reason text DEFAULT NULL,
DROP CONSTRAINT IF EXISTS idx_icingaweb_schema_version,
ADD CONSTRAINT idx_icingaweb_schema_version UNIQUE (version); ADD CONSTRAINT idx_icingaweb_schema_version UNIQUE (version);
UPDATE icingaweb_schema SET timestamp = timestamp * 1000, success = 'y'; UPDATE icingaweb_schema SET timestamp = timestamp * 1000, success = 'y';
INSERT INTO icingaweb_schema (version, timestamp, success, reason) INSERT INTO icingaweb_schema (version, timestamp, success, reason)
VALUES('2.12.0', UNIX_TIMESTAMP() * 1000, 'y', NULL) VALUES('2.12.0', UNIX_TIMESTAMP() * 1000, 'y', NULL);
ON DUPLICATE KEY UPDATE timestamp = VALUES(timestamp), success = VALUES(success), reason = VALUES(reason);

View File

@ -5,11 +5,9 @@ ALTER TABLE icingaweb_schema
ALTER COLUMN version TYPE varchar(64), ALTER COLUMN version TYPE varchar(64),
ADD COLUMN success boolenum DEFAULT NULL, ADD COLUMN success boolenum DEFAULT NULL,
ADD COLUMN reason text DEFAULT NULL, ADD COLUMN reason text DEFAULT NULL,
DROP CONSTRAINT IF EXISTS idx_icingaweb_schema_version,
ADD CONSTRAINT idx_icingaweb_schema_version UNIQUE (version); ADD CONSTRAINT idx_icingaweb_schema_version UNIQUE (version);
UPDATE icingaweb_schema SET timestamp = timestamp * 1000, success = 'y'; UPDATE icingaweb_schema SET timestamp = timestamp * 1000, success = 'y';
INSERT INTO icingaweb_schema (version, timestamp, success, reason) INSERT INTO icingaweb_schema (version, timestamp, success, reason)
VALUES('2.12.0', EXTRACT(EPOCH FROM now()) * 1000, 'y', NULL) VALUES('2.12.0', EXTRACT(EPOCH FROM now()) * 1000, 'y', NULL);
ON CONFLICT ON CONSTRAINT idx_icingaweb_schema_version DO UPDATE SET timestamp = EXCLUDED.timestamp, success = EXCLUDED.success, reason = EXCLUDED.reason;