]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#89,!22] Modified MySQL 6->7 upgrade script according to review.
authorMarcin Siodelski <marcin@isc.org>
Thu, 13 Sep 2018 06:42:03 +0000 (08:42 +0200)
committerMarcin Siodelski <marcin@isc.org>
Tue, 18 Sep 2018 05:41:11 +0000 (07:41 +0200)
src/share/database/scripts/mysql/dhcpdb_create.mysql
src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh.in

index f97c035057e555ec08fe4c5675b0631373286025..63c30f9c3ac28f898a8d143dedaee62d28d66d3b 100644 (file)
@@ -953,8 +953,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet (
     user_context LONGTEXT,
     valid_lifetime INT(10) DEFAULT NULL,
     PRIMARY KEY (subnet_id),
-    UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
-    KEY subnet4_subnet_prefix (subnet_prefix),
+    UNIQUE KEY subnet4_subnet_prefix (subnet_prefix),
     KEY fk_dhcp4_subnet_shared_network (shared_network_name),
     KEY key_dhcp4_subnet_modification_ts (modification_ts),
     CONSTRAINT fk_dhcp4_subnet_shared_network FOREIGN KEY (shared_network_name)
@@ -1190,7 +1189,7 @@ CREATE TABLE dhcp6_subnet (
     user_context LONGTEXT,
     valid_lifetime INT(10) DEFAULT NULL,
     PRIMARY KEY (subnet_id),
-    UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
+    UNIQUE KEY subnet_prefix_UNIQUE (subnet_prefix),
     KEY subnet6_subnet_prefix (subnet_prefix),
     KEY fk_dhcp6_subnet_shared_network (shared_network_name),
     KEY key_dhcp6_subnet_modification_ts (modification_ts),
index bde8cd7c88573fe4fdac4af93b245f920ad200ce..b0d522b8e9d41c742d847e54bb21ca0d65413ab8 100644 (file)
@@ -129,6 +129,7 @@ INSERT INTO modification(id, modification_type)
     VALUES(2, "delete");
 
 # Create table dhcp4_server
+#
 CREATE TABLE IF NOT EXISTS dhcp4_server (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     tag VARCHAR(256) NOT NULL,
@@ -136,19 +137,18 @@ CREATE TABLE IF NOT EXISTS dhcp4_server (
     modification_ts TIMESTAMP NOT NULL,
     PRIMARY KEY (id),
     UNIQUE KEY dhcp4_server_tag_UNIQUE (tag),
-    UNIQUE KEY id_UNIQUE (id),
     KEY key_dhcp4_server_modification_ts (modification_ts)
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_audit
+#
 CREATE TABLE IF NOT EXISTS dhcp4_audit (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     object_type VARCHAR(256) NOT NULL,
-    object_id VARCHAR(128) NOT NULL,
+    object_id BIGINT(2) UNSIGNED NOT NULL,
     modification_type TINYINT(1) NOT NULL,
     modification_ts TIMESTAMP NOT NULL,
     PRIMARY KEY (id),
-    UNIQUE KEY id_UNIQUE (id),
     KEY key_dhcp4_audit_by_modification_ts (modification_ts),
     KEY fk_dhcp4_audit_modification_type (modification_type),
     CONSTRAINT fk_dhcp4_audit_modification_type FOREIGN KEY (modification_type)
@@ -157,18 +157,20 @@ CREATE TABLE IF NOT EXISTS dhcp4_audit (
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_global_parameter
+#
 CREATE TABLE IF NOT EXISTS dhcp4_global_parameter (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     name VARCHAR(128) NOT NULL,
     value LONGTEXT NOT NULL,
     modification_ts timestamp NOT NULL,
     PRIMARY KEY (id),
-    UNIQUE KEY id_UNIQUE (id),
     KEY key_dhcp4_global_parameter_modification_ts (modification_ts),
     KEY key_dhcp4_global_parameter_name (name)
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_global_parameter_server
+# M-to-M cross-reference between global parameters and servers
+#
 CREATE TABLE IF NOT EXISTS dhcp4_global_parameter_server (
     parameter_id BIGINT(20) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -185,6 +187,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_global_parameter_server (
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_option_def
+#
 CREATE TABLE IF NOT EXISTS dhcp4_option_def (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     code TINYINT(3) UNSIGNED NOT NULL,
@@ -195,12 +198,13 @@ CREATE TABLE IF NOT EXISTS dhcp4_option_def (
     record_types VARCHAR(512) DEFAULT NULL,
     user_context LONGTEXT,
     PRIMARY KEY (id),
-    UNIQUE KEY id_UNIQUE (id),
     KEY key_dhcp4_option_def_modification_ts (modification_ts),
     KEY key_dhcp4_option_def_code_space (code, space)
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_option_def_server
+# M-to-M cross-reference between option definitions and servers
+#
 CREATE TABLE IF NOT EXISTS dhcp4_option_def_server (
     option_def_id BIGINT(20) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -216,7 +220,9 @@ CREATE TABLE IF NOT EXISTS dhcp4_option_def_server (
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_shared_network
+#
 CREATE TABLE IF NOT EXISTS dhcp4_shared_network (
+    id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     name VARCHAR(128) NOT NULL,
     client_class VARCHAR(128) DEFAULT NULL,
     interface VARCHAR(128) DEFAULT NULL,
@@ -230,27 +236,32 @@ CREATE TABLE IF NOT EXISTS dhcp4_shared_network (
     server_hostname VARCHAR(512) DEFAULT NULL,
     user_context LONGTEXT,
     valid_lifetime INT(10) DEFAULT NULL,
-    PRIMARY KEY (name),
+    PRIMARY KEY (id),
+    UNIQUE KEY name_UNIQUE (name),
     KEY key_dhcp4_shared_network_modification_ts (modification_ts)
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_shared_network_server
+# M-to-M cross-reference between shared networks and servers
+#
 CREATE TABLE IF NOT EXISTS dhcp4_shared_network_server (
-    shared_network_name VARCHAR(128) NOT NULL,
+    shared_network_id BIGINT(20) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,
     modification_ts TIMESTAMP NOT NULL,
-    PRIMARY KEY (shared_network_name, server_id),
+    PRIMARY KEY (shared_network_id, server_id),
     KEY key_dhcp4_shared_network_server_modification_ts (modification_ts),
-    KEY fk_dhcp4_shared_network_server_server_id_idx (server_id),
+    KEY fk_dhcp4_shared_network_server_server_id (server_id),
     CONSTRAINT fk_dhcp4_shared_network_server_server_id FOREIGN KEY (server_id)
         REFERENCES dhcp4_server (id)
         ON DELETE NO ACTION ON UPDATE NO ACTION,
-    CONSTRAINT fk_dhcp4_shared_network_server_shared_network_name FOREIGN KEY (shared_network_name)
-        REFERENCES dhcp4_shared_network (name) ON DELETE NO ACTION ON UPDATE NO ACTION
+    CONSTRAINT fk_dhcp4_shared_network_server_shared_network_id FOREIGN KEY (shared_network_id)
+        REFERENCES dhcp4_shared_network (id) ON DELETE NO ACTION ON UPDATE NO ACTION
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_subnet
+#
 CREATE TABLE IF NOT EXISTS dhcp4_subnet (
+    subnet_id INT(10) UNSIGNED NOT NULL,
     subnet_prefix VARCHAR(32) NOT NULL,
     4o6_interface VARCHAR(128) DEFAULT NULL,
     4o6_interface_id VARCHAR(128) DEFAULT NULL,
@@ -268,13 +279,10 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet (
     reservation_mode TINYINT(3) NOT NULL DEFAULT '3',
     server_hostname VARCHAR(512) DEFAULT NULL,
     shared_network_name VARCHAR(128) DEFAULT NULL,
-    subnet_id INT(10) UNSIGNED NOT NULL,
     user_context LONGTEXT,
     valid_lifetime INT(10) DEFAULT NULL,
     PRIMARY KEY (subnet_id),
-    UNIQUE KEY subnet_id_UNIQUE (subnet_id),
-    UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
-    KEY subnet4_subnet_prefix (subnet_prefix),
+    UNIQUE KEY subnet4_subnet_prefix (subnet_prefix),
     KEY fk_dhcp4_subnet_shared_network (shared_network_name),
     KEY key_dhcp4_subnet_modification_ts (modification_ts),
     CONSTRAINT fk_dhcp4_subnet_shared_network FOREIGN KEY (shared_network_name)
@@ -283,7 +291,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet (
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_pool
--- -----------------------------------------------------
+#
 CREATE TABLE IF NOT EXISTS dhcp4_pool (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     start_address INT(10) NOT NULL,
@@ -299,6 +307,8 @@ CREATE TABLE IF NOT EXISTS dhcp4_pool (
 ) ENGINE=InnoDB;
 
 # Create table dhcp4_subnet_server
+# M-to-M cross-reference between subnets and servers
+#
 CREATE TABLE IF NOT EXISTS dhcp4_subnet_server (
     subnet_id INT(10) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -316,6 +326,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet_server (
 
 
 # Modify the primary key to BINGINT as other tables have.
+#
 ALTER TABLE dhcp4_options MODIFY option_id BIGINT(20) UNSIGNED NOT NULL;
 
 # Add conifguration backend specific columns.
@@ -325,6 +336,8 @@ ALTER TABLE dhcp4_options
     ADD COLUMN modification_ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
 
 # Create table dhcp4_options_server
+# M-to-M cross-reference between options and servers
+#
 CREATE TABLE IF NOT EXISTS dhcp4_options_server (
     option_id BIGINT(20) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -341,6 +354,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_options_server (
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_server
+#
 CREATE TABLE IF NOT EXISTS dhcp6_server (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     tag VARCHAR(256) NOT NULL,
@@ -348,19 +362,18 @@ CREATE TABLE IF NOT EXISTS dhcp6_server (
     modification_ts TIMESTAMP NOT NULL,
     PRIMARY KEY (id),
     UNIQUE KEY dhcp6_server_tag_UNIQUE (tag),
-    UNIQUE KEY id_UNIQUE (id),
     KEY key_dhcp6_server_modification_ts (modification_ts)
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_audit
+#
 CREATE TABLE IF NOT EXISTS dhcp6_audit (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     object_type VARCHAR(256) NOT NULL,
-    object_id VARCHAR(128) NOT NULL,
+    object_id BIGINT(20) UNSIGNED NOT NULL,
     modification_type TINYINT(1) NOT NULL,
     modification_ts TIMESTAMP NOT NULL,
     PRIMARY KEY (id),
-    UNIQUE KEY id_UNIQUE (id),
     KEY key_dhcp6_audit_modification_ts (modification_ts),
     KEY fk_dhcp6_audit_modification_type (modification_type),
     CONSTRAINT fk_dhcp6_audit_modification_type FOREIGN KEY (modification_type)
@@ -369,18 +382,20 @@ CREATE TABLE IF NOT EXISTS dhcp6_audit (
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_global_parameter
+#
 CREATE TABLE IF NOT EXISTS dhcp6_global_parameter (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     name VARCHAR(128) NOT NULL,
     value LONGTEXT NOT NULL,
     modification_ts timestamp NOT NULL,
     PRIMARY KEY (id),
-    UNIQUE KEY id_UNIQUE (id),
     KEY key_dhcp6_global_parameter_modification_ts (modification_ts),
     KEY key_dhcp6_global_parameter_name (name)
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_global_parameter_server
+# M-to-M cross-reference between global parameters and servers
+#
 CREATE TABLE IF NOT EXISTS dhcp6_global_parameter_server (
     parameter_id BIGINT(20) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -397,6 +412,7 @@ CREATE TABLE IF NOT EXISTS dhcp6_global_parameter_server (
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_option_def
+#
 CREATE TABLE IF NOT EXISTS dhcp6_option_def (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     code TINYINT(3) UNSIGNED NOT NULL,
@@ -407,12 +423,13 @@ CREATE TABLE IF NOT EXISTS dhcp6_option_def (
     record_types VARCHAR(512) DEFAULT NULL,
     user_context LONGTEXT,
     PRIMARY KEY (id),
-    UNIQUE KEY id_UNIQUE (id),
     KEY key_dhcp6_option_def_modification_ts (modification_ts),
     KEY key_dhcp6_option_def_code_space (code, space)
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_option_def_server
+# M-to-M cross-reference between option definitions and servers
+#
 CREATE TABLE IF NOT EXISTS dhcp6_option_def_server (
     option_def_id BIGINT(20) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -428,7 +445,9 @@ CREATE TABLE IF NOT EXISTS dhcp6_option_def_server (
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_shared_network
+#
 CREATE TABLE dhcp6_shared_network (
+    id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     name VARCHAR(128) NOT NULL,
     client_class VARCHAR(128) DEFAULT NULL,
     interface VARCHAR(128) DEFAULT NULL,
@@ -443,28 +462,33 @@ CREATE TABLE dhcp6_shared_network (
     server_hostname VARCHAR(512) DEFAULT NULL,
     user_context LONGTEXT,
     valid_lifetime INT(10) DEFAULT NULL,
-    PRIMARY KEY (name),
+    PRIMARY KEY (id),
+    UNIQUE KEY name_UNIQUE (name),
     KEY key_dhcp6_shared_network_modification_ts (modification_ts)
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_shared_network_server
+# M-to-M cross-reference between shared networks and servers
+#
 CREATE TABLE IF NOT EXISTS dhcp6_shared_network_server (
-    shared_network_name VARCHAR(128) NOT NULL,
+    shared_network_id BIGINT(20) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,
     modification_ts TIMESTAMP NOT NULL,
     KEY key_dhcp6_shared_network_server_modification_ts (modification_ts),
     KEY fk_dhcp6_shared_network_server_server_id_idx (server_id),
-    KEY fk_dhcp6_shared_network_server_shared_network_name (shared_network_name),
+    KEY fk_dhcp6_shared_network_server_shared_network_id (shared_network_id),
     CONSTRAINT fk_dhcp6_shared_network_server_server_id FOREIGN KEY (server_id)
         REFERENCES dhcp6_server (id)
         ON DELETE NO ACTION ON UPDATE NO ACTION,
-    CONSTRAINT fk_dhcp6_shared_network_server_shared_network_name FOREIGN KEY (shared_network_name)
-        REFERENCES dhcp6_shared_network (name)
+    CONSTRAINT fk_dhcp6_shared_network_server_shared_network_id FOREIGN KEY (shared_network_id)
+        REFERENCES dhcp6_shared_network (id)
         ON DELETE NO ACTION ON UPDATE NO ACTION
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_subnet
+#
 CREATE TABLE dhcp6_subnet (
+    subnet_id int(10) UNSIGNED NOT NULL,
     subnet_prefix VARCHAR(64) NOT NULL,
     client_class VARCHAR(128) DEFAULT NULL,
     interface VARCHAR(128) DEFAULT NULL,
@@ -477,13 +501,10 @@ CREATE TABLE dhcp6_subnet (
     require_client_classes LONGTEXT,
     reservation_mode TINYINT(3) NOT NULL DEFAULT '3',
     shared_network_name VARCHAR(128) DEFAULT NULL,
-    subnet_id int(10) UNSIGNED NOT NULL,
     user_context LONGTEXT,
     valid_lifetime INT(10) DEFAULT NULL,
     PRIMARY KEY (subnet_id),
-    UNIQUE KEY subnet_id_UNIQUE (subnet_id),
-    UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
-    KEY subnet6_subnet_prefix (subnet_prefix),
+    UNIQUE KEY subnet6_subnet_prefix (subnet_prefix),
     KEY fk_dhcp6_subnet_shared_network (shared_network_name),
     KEY key_dhcp6_subnet_modification_ts (modification_ts),
     CONSTRAINT fk_dhcp6_subnet_shared_network FOREIGN KEY (shared_network_name)
@@ -492,6 +513,8 @@ CREATE TABLE dhcp6_subnet (
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_subnet_server
+# M-to-M cross-reference between subnets and servers
+#
 CREATE TABLE dhcp6_subnet_server (
     subnet_id INT(10) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -508,6 +531,7 @@ CREATE TABLE dhcp6_subnet_server (
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_pd_pool
+#
 CREATE TABLE IF NOT EXISTS dhcp6_pd_pool (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     prefix VARCHAR(45) NOT NULL,
@@ -523,6 +547,7 @@ CREATE TABLE IF NOT EXISTS dhcp6_pd_pool (
 ) ENGINE=InnoDB;
 
 # Create table dhcp6_pool
+#
 CREATE TABLE IF NOT EXISTS dhcp6_pool (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     start_address VARCHAR(45) NOT NULL,
@@ -547,6 +572,8 @@ ALTER TABLE dhcp6_options
     ADD COLUMN modification_ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
 
 # Create table dhcp6_options_server
+# M-to-M cross-reference between options and servers
+#
 CREATE TABLE IF NOT EXISTS dhcp6_options_server (
     option_id BIGINT(20) UNSIGNED NOT NULL,
     server_id BIGINT(20) UNSIGNED NOT NULL,