Fix MySQL8.4 nonstandard foreign keys deprecation

If you try to set up icinga director with the latest minor version of MySQL 8.4+, the schema creation will fail with confusing SQL error messages. This commit aims to fix that. https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html#mysql-nutshell-deprecations
This commit is contained in:
Mek Skëndo 2024-12-19 16:56:04 +01:00 committed by Ravi Kumar Kempapura Srinivasa
parent de8fe109e2
commit 2196de252d
2 changed files with 20 additions and 3 deletions

View File

@ -0,0 +1,17 @@
ALTER TABLE director_activity_log
DROP INDEX checksum,
ADD UNIQUE INDEX checksum (checksum);
ALTER TABLE director_generated_config
DROP FOREIGN KEY director_generated_config_activity;
ALTER TABLE director_generated_config
ADD CONSTRAINT director_generated_config_activity
FOREIGN KEY (last_activity_checksum)
REFERENCES director_activity_log (checksum)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
INSERT INTO director_schema_migration
(schema_version, migration_time)
VALUES (188, NOW());

View File

@ -46,7 +46,7 @@ CREATE TABLE director_activity_log (
INDEX search_idx (object_name),
INDEX search_idx2 (object_type(32), object_name(64), change_time),
INDEX search_author (author),
INDEX checksum (checksum)
UNIQUE INDEX checksum (checksum)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE director_activity_log_remark (
@ -114,7 +114,7 @@ CREATE TABLE director_generated_config (
last_activity_checksum VARBINARY(20) NOT NULL,
PRIMARY KEY (checksum),
CONSTRAINT director_generated_config_activity
FOREIGN KEY activity_checksum (last_activity_checksum)
FOREIGN KEY (last_activity_checksum)
REFERENCES director_activity_log (checksum)
ON DELETE RESTRICT
ON UPDATE RESTRICT
@ -2446,4 +2446,4 @@ CREATE TABLE branched_icinga_dependency (
INSERT INTO director_schema_migration
(schema_version, migration_time)
VALUES (187, NOW());
VALUES (188, NOW());