From: Marcin Siodelski Date: Tue, 19 May 2020 16:39:20 +0000 (+0200) Subject: [#1242] Added missing indexes to options X-Git-Tag: Kea-1.7.8~59 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=895d7a24042b2ae06d828369bf7239a3d50ef924;p=thirdparty%2Fkea.git [#1242] Added missing indexes to options The missing foreign keys have been added to the dhcp4_options and dhcp6_options tables. This creates new db migration for MySQL, 9.2. --- diff --git a/configure.ac b/configure.ac index 4f4a304648..f453c724e8 100755 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/src/share/database/scripts/mysql/.gitignore b/src/share/database/scripts/mysql/.gitignore index b920a611a6..739e523ab5 100644 --- a/src/share/database/scripts/mysql/.gitignore +++ b/src/share/database/scripts/mysql/.gitignore @@ -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 diff --git a/src/share/database/scripts/mysql/Makefile.am b/src/share/database/scripts/mysql/Makefile.am index d50ce1b5dc..04107c61ae 100644 --- a/src/share/database/scripts/mysql/Makefile.am +++ b/src/share/database/scripts/mysql/Makefile.am @@ -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} diff --git a/src/share/database/scripts/mysql/dhcpdb_create.mysql b/src/share/database/scripts/mysql/dhcpdb_create.mysql index c26a2fd054..8b7f64d2d1 100644 --- a/src/share/database/scripts/mysql/dhcpdb_create.mysql +++ b/src/share/database/scripts/mysql/dhcpdb_create.mysql @@ -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 index 0000000000..7d05d270e1 --- /dev/null +++ b/src/share/database/scripts/mysql/upgrade_9.1_to_9.2.sh.in @@ -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 "$@" <