]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1242] Added missing indexes to options
authorMarcin Siodelski <marcin@isc.org>
Tue, 19 May 2020 16:39:20 +0000 (18:39 +0200)
committerMarcin Siodelski <marcin@isc.org>
Wed, 20 May 2020 13:23:01 +0000 (13:23 +0000)
The missing foreign keys have been added to the dhcp4_options and
dhcp6_options tables. This creates new db migration for MySQL, 9.2.

configure.ac
src/share/database/scripts/mysql/.gitignore
src/share/database/scripts/mysql/Makefile.am
src/share/database/scripts/mysql/dhcpdb_create.mysql
src/share/database/scripts/mysql/upgrade_9.1_to_9.2.sh.in [new file with mode: 0644]

index 4f4a304648ebc14a0df6354a07171e12e787f5ee..f453c724e8fc8464b7243d5b5a8a5efb34ff0ae2 100755 (executable)
@@ -1719,6 +1719,7 @@ AC_CONFIG_FILES([Makefile
                  src/share/database/scripts/mysql/upgrade_8.1_to_8.2.sh
                  src/share/database/scripts/mysql/upgrade_8.2_to_9.0.sh
                  src/share/database/scripts/mysql/upgrade_9.0_to_9.1.sh
+                 src/share/database/scripts/mysql/upgrade_9.1_to_9.2.sh
                  src/share/database/scripts/mysql/wipe_data.sh
                  src/share/database/scripts/pgsql/Makefile
                  src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh
index b920a611a6ca2bea5da3929023761bfe63fdcaa2..739e523ab5cf2fe1bee730b60ef3344db7591947 100644 (file)
@@ -12,4 +12,5 @@
 /upgrade_8.1_to_8.2.sh
 /upgrade_8.2_to_9.0.sh
 /upgrade_9.0_to_9.1.sh
+/upgrade_9.1_to_9.2.sh
 /wipe_data.sh
index d50ce1b5dc8cf7aeed280a28096ecbe667a69706..04107c61ae741aa6a837b79b1ac2cced745a146a 100644 (file)
@@ -17,6 +17,7 @@ sqlscripts_DATA += upgrade_8.0_to_8.1.sh
 sqlscripts_DATA += upgrade_8.1_to_8.2.sh
 sqlscripts_DATA += upgrade_8.2_to_9.0.sh
 sqlscripts_DATA += upgrade_9.0_to_9.1.sh
+sqlscripts_DATA += upgrade_9.1_to_9.2.sh
 sqlscripts_DATA += wipe_data.sh
 
 DISTCLEANFILES = upgrade_1.0_to_2.0.sh
@@ -32,6 +33,7 @@ DISTCLEANFILES += upgrade_7.0_to_8.0.sh
 DISTCLEANFILES += upgrade_8.1_to_8.2.sh
 DISTCLEANFILES += upgrade_8.2_to_9.0.sh
 DISTCLEANFILES += upgrade_9.0_to_9.1.sh
+DISTCLEANFILES += upgrade_9.1_to_9.2.sh
 DISTCLEANFILES += wipe_data.sh
 
 EXTRA_DIST = ${sqlscripts_DATA}
index c26a2fd054029a25bc82f8ac47eb3886e12c753e..8b7f64d2d165a736f56f0ae9a70201335d9fa5ee 100644 (file)
@@ -2836,6 +2836,49 @@ SET version = '9', minor = '1';
 
 # This line concludes database upgrade to version 9.1.
 
+# Add missing indexes (foreign keys) to the dhcp4_options table.
+ALTER TABLE dhcp4_options ADD CONSTRAINT fk_dhcp4_options_shared_network
+    FOREIGN KEY (shared_network_name)
+        REFERENCES dhcp4_shared_network(name)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp4_options ADD CONSTRAINT fk_dhcp4_options_subnet
+    FOREIGN KEY (dhcp4_subnet_id)
+        REFERENCES dhcp4_subnet(subnet_id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp4_options ADD CONSTRAINT fk_dhcp4_options_pool
+    FOREIGN KEY (pool_id)
+        REFERENCES dhcp4_pool(id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+# Add missing indexes (foreign keys) to the dhcp6_options table.
+ALTER TABLE dhcp6_options ADD CONSTRAINT fk_dhcp6_options_shared_network
+    FOREIGN KEY (shared_network_name)
+        REFERENCES dhcp6_shared_network(name)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp6_options ADD CONSTRAINT fk_dhcp6_options_subnet
+    FOREIGN KEY (dhcp6_subnet_id)
+        REFERENCES dhcp6_subnet(subnet_id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp6_options ADD CONSTRAINT fk_dhcp6_options_pool
+    FOREIGN KEY (pool_id)
+        REFERENCES dhcp6_pool(id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp6_options ADD CONSTRAINT fk_dhcp6_options_pd_pool
+    FOREIGN KEY (pd_pool_id)
+        REFERENCES dhcp6_pd_pool(id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+# Update the schema version number
+UPDATE schema_version
+SET version = '9', minor = '2';
+
+# This line concludes database upgrade to version 9.2.
+
 
 # Notes:
 #
diff --git a/src/share/database/scripts/mysql/upgrade_9.1_to_9.2.sh.in b/src/share/database/scripts/mysql/upgrade_9.1_to_9.2.sh.in
new file mode 100644 (file)
index 0000000..7d05d27
--- /dev/null
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+prefix=@prefix@
+# Include utilities. Use installed version if available and
+# use build version if it isn't.
+if [ -e @datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh ]; then
+    . @datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh
+else
+    . @abs_top_builddir@/src/bin/admin/admin-utils.sh
+fi
+
+VERSION=`mysql_version "$@"`
+
+if [ "$VERSION" != "9.1" ]; then
+    printf "This script upgrades 9.1 to 9.2. Reported version is $VERSION. Skipping upgrade.\n"
+    exit 0
+fi
+
+mysql "$@" <<EOF
+
+# Add missing indexes (foreign keys) to the dhcp4_options table.
+ALTER TABLE dhcp4_options ADD CONSTRAINT fk_dhcp4_options_shared_network
+    FOREIGN KEY (shared_network_name)
+        REFERENCES dhcp4_shared_network(name)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp4_options ADD CONSTRAINT fk_dhcp4_options_subnet
+    FOREIGN KEY (dhcp4_subnet_id)
+        REFERENCES dhcp4_subnet(subnet_id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp4_options ADD CONSTRAINT fk_dhcp4_options_pool
+    FOREIGN KEY (pool_id)
+        REFERENCES dhcp4_pool(id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+# Add missing indexes (foreign keys) to the dhcp6_options table.
+ALTER TABLE dhcp6_options ADD CONSTRAINT fk_dhcp6_options_shared_network
+    FOREIGN KEY (shared_network_name)
+        REFERENCES dhcp6_shared_network(name)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp6_options ADD CONSTRAINT fk_dhcp6_options_subnet
+    FOREIGN KEY (dhcp6_subnet_id)
+        REFERENCES dhcp6_subnet(subnet_id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp6_options ADD CONSTRAINT fk_dhcp6_options_pool
+    FOREIGN KEY (pool_id)
+        REFERENCES dhcp6_pool(id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE dhcp6_options ADD CONSTRAINT fk_dhcp6_options_pd_pool
+    FOREIGN KEY (pd_pool_id)
+        REFERENCES dhcp6_pd_pool(id)
+        ON DELETE CASCADE ON UPDATE CASCADE;
+
+# Update the schema version number
+UPDATE schema_version
+SET version = '9', minor = '2';
+
+# This line concludes database upgrade to version 9.2.
+
+EOF
+
+RESULT=$?
+
+exit $?