schema: use checksum as primary key for config
This commit is contained in:
parent
bc00eefb07
commit
d7a816026f
|
@ -0,0 +1,36 @@
|
||||||
|
DROP TABLE director_generated_config_file;
|
||||||
|
|
||||||
|
DROP TABLE director_generated_config;
|
||||||
|
|
||||||
|
CREATE TABLE director_generated_config (
|
||||||
|
checksum VARBINARY(20) NOT NULL COMMENT 'SHA1(last_activity_checksum;file_path=checksum;file_path=checksum;...)',
|
||||||
|
director_version VARCHAR(64) DEFAULT NULL,
|
||||||
|
director_db_version INT(10) DEFAULT NULL,
|
||||||
|
duration INT(10) UNSIGNED DEFAULT NULL COMMENT 'Config generation duration (ms)',
|
||||||
|
last_activity_checksum VARBINARY(20) NOT NULL,
|
||||||
|
PRIMARY KEY (checksum),
|
||||||
|
CONSTRAINT director_generated_config_activity
|
||||||
|
FOREIGN KEY activity_checksum (last_activity_checksum)
|
||||||
|
REFERENCES director_activity_log (checksum)
|
||||||
|
ON DELETE RESTRICT
|
||||||
|
ON UPDATE RESTRICT
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
CREATE TABLE director_generated_config_file (
|
||||||
|
config_checksum VARBINARY(20) NOT NULL,
|
||||||
|
file_checksum VARBINARY(20) NOT NULL,
|
||||||
|
file_path VARCHAR(64) NOT NULL COMMENT 'e.g. zones/nafta/hosts.conf',
|
||||||
|
CONSTRAINT director_generated_config_file_config
|
||||||
|
FOREIGN KEY config (config_checksum)
|
||||||
|
REFERENCES director_generated_config (checksum)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT director_generated_config_file_file
|
||||||
|
FOREIGN KEY checksum (file_checksum)
|
||||||
|
REFERENCES director_generated_file (checksum)
|
||||||
|
ON DELETE RESTRICT
|
||||||
|
ON UPDATE RESTRICT,
|
||||||
|
PRIMARY KEY (config_checksum, file_path),
|
||||||
|
INDEX search_idx (file_checksum)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
|
@ -36,16 +36,12 @@ CREATE TABLE director_activity_log (
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
CREATE TABLE director_generated_config (
|
CREATE TABLE director_generated_config (
|
||||||
id BIGINT(20) UNSIGNED NOT NULL,
|
checksum VARBINARY(20) NOT NULL COMMENT 'SHA1(last_activity_checksum;file_path=checksum;file_path=checksum;...)',
|
||||||
author VARCHAR(64) NOT NULL,
|
|
||||||
director_version VARCHAR(64) DEFAULT NULL,
|
director_version VARCHAR(64) DEFAULT NULL,
|
||||||
director_db_version INT(10) DEFAULT NULL,
|
director_db_version INT(10) DEFAULT NULL,
|
||||||
duration INT(10) UNSIGNED DEFAULT NULL COMMENT 'Config generation duration (ms)',
|
duration INT(10) UNSIGNED DEFAULT NULL COMMENT 'Config generation duration (ms)',
|
||||||
last_activity_checksum VARBINARY(20) NOT NULL,
|
last_activity_checksum VARBINARY(20) NOT NULL,
|
||||||
checksum VARBINARY(20) NOT NULL COMMENT 'SHA1(file_path=checksum;file_path=checksum;...)',
|
PRIMARY KEY (checksum),
|
||||||
ctime DATETIME NOT NULL,
|
|
||||||
PRIMARY KEY (id),
|
|
||||||
INDEX sort_idx (ctime),
|
|
||||||
CONSTRAINT director_generated_config_activity
|
CONSTRAINT director_generated_config_activity
|
||||||
FOREIGN KEY activity_checksum (last_activity_checksum)
|
FOREIGN KEY activity_checksum (last_activity_checksum)
|
||||||
REFERENCES director_activity_log (checksum)
|
REFERENCES director_activity_log (checksum)
|
||||||
|
@ -60,12 +56,12 @@ CREATE TABLE director_generated_file (
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
CREATE TABLE director_generated_config_file (
|
CREATE TABLE director_generated_config_file (
|
||||||
config_id BIGINT(20) UNSIGNED NOT NULL,
|
config_checksum VARBINARY(20) NOT NULL,
|
||||||
file_checksum VARBINARY(20) NOT NULL,
|
file_checksum VARBINARY(20) NOT NULL,
|
||||||
file_path VARCHAR(64) NOT NULL COMMENT 'e.g. zones/nafta/hosts.conf',
|
file_path VARCHAR(64) NOT NULL COMMENT 'e.g. zones/nafta/hosts.conf',
|
||||||
CONSTRAINT director_generated_config_file_config
|
CONSTRAINT director_generated_config_file_config
|
||||||
FOREIGN KEY config (config_id)
|
FOREIGN KEY config (config_checksum)
|
||||||
REFERENCES director_generated_config (id)
|
REFERENCES director_generated_config (checksum)
|
||||||
ON DELETE CASCADE
|
ON DELETE CASCADE
|
||||||
ON UPDATE CASCADE,
|
ON UPDATE CASCADE,
|
||||||
CONSTRAINT director_generated_config_file_file
|
CONSTRAINT director_generated_config_file_file
|
||||||
|
@ -73,7 +69,7 @@ CREATE TABLE director_generated_config_file (
|
||||||
REFERENCES director_generated_file (checksum)
|
REFERENCES director_generated_file (checksum)
|
||||||
ON DELETE RESTRICT
|
ON DELETE RESTRICT
|
||||||
ON UPDATE RESTRICT,
|
ON UPDATE RESTRICT,
|
||||||
PRIMARY KEY (config_id, file_path),
|
PRIMARY KEY (config_checksum, file_path),
|
||||||
INDEX search_idx (file_checksum)
|
INDEX search_idx (file_checksum)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue