]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#946] Created new MySQL schema version
authorFrancis Dupont <fdupont@isc.org>
Thu, 28 Nov 2019 10:43:25 +0000 (11:43 +0100)
committerMarcin Siodelski <marcin@isc.org>
Mon, 27 Jan 2020 13:52:07 +0000 (13:52 +0000)
configure.ac
src/bin/admin/tests/mysql_tests.sh.in
src/lib/mysql/mysql_constants.h
src/share/database/scripts/mysql/Makefile.am
src/share/database/scripts/mysql/dhcpdb_create.mysql
src/share/database/scripts/mysql/upgrade_8.2_to_9.0.sh.in
src/share/database/scripts/mysql/upgrade_9.0_to_9.1.sh.in [new file with mode: 0644]

index 4a33cedc0906c56f869806c7a51b71f5137bfc9b..d17a52a463bd6d12929e356858ee68dfb262ccd1 100755 (executable)
@@ -1702,6 +1702,7 @@ AC_CONFIG_FILES([Makefile
                  src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh
                  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/wipe_data.sh
                  src/share/database/scripts/pgsql/Makefile
                  src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh
index 63dfb469a46802dceba67fbe2a3cd02589e56c1a..04c9d16330655136571d7b0d0dcc019e92ca04a1 100644 (file)
@@ -258,7 +258,7 @@ mysql_upgrade_test() {
 
     assert_str_eq "1.0" ${version} "Expected kea-admin to return %s, returned value was %s"
 
-    # Ok, we have a 1.0 database. Let's upgrade it to 9.0
+    # Ok, we have a 1.0 database. Let's upgrade it to 9.1
     ${keaadmin} db-upgrade mysql -u $db_user -p $db_password -n $db_name -d $db_scripts_dir
     ERRCODE=$?
 
@@ -729,7 +729,7 @@ EOF
     qry="select is_array from dhcp6_option_def"
     run_statement "dhcp6_option_def verify is_array column" "$qry"
 
-    # Schema upgrade from 8.2 to 9.0
+    # Schema upgrade from 8.2 to 9.1
 
     # New DDNS columns.
 
@@ -749,9 +749,9 @@ EOF
     qry="select ddns_send_updates, ddns_override_no_update, ddns_override_client_update, ddns_replace_client_name, ddns_generated_prefix, ddns_qualifying_suffix from dhcp6_subnet"
     run_statement "dhcp6_subnet" "$qry"
 
-    # Verify upgraded schema reports version 9.0
+    # Verify upgraded schema reports version 9.1
     version=$(${keaadmin} db-version mysql -u $db_user -p $db_password -n $db_name -d $db_scripts_dir)
-    assert_str_eq "9.0" ${version} "Expected kea-admin to return %s, returned value was %s"
+    assert_str_eq "9.1" ${version} "Expected kea-admin to return %s, returned value was %s"
 
     # Let's wipe the whole database
     mysql_wipe
index f7ddbba6b45e213371a00c2fa654e0f3a830d3ae..06b13b1ece92937c6c14ef790bee1c42b4d90602 100644 (file)
@@ -52,7 +52,7 @@ const int MLM_MYSQL_FETCH_FAILURE = 0;
 /// @name Current database schema version values.
 //@{
 const uint32_t MYSQL_SCHEMA_VERSION_MAJOR = 9;
-const uint32_t MYSQL_SCHEMA_VERSION_MINOR = 0;
+const uint32_t MYSQL_SCHEMA_VERSION_MINOR = 1;
 
 //@}
 
index 786552afafd9f53cb10d927b92b21d1e2358add1..d50ce1b5dc8cf7aeed280a28096ecbe667a69706 100644 (file)
@@ -16,6 +16,7 @@ sqlscripts_DATA += upgrade_7.0_to_8.0.sh
 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 += wipe_data.sh
 
 DISTCLEANFILES = upgrade_1.0_to_2.0.sh
@@ -30,6 +31,7 @@ DISTCLEANFILES += upgrade_6.0_to_7.0.sh
 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 += wipe_data.sh
 
 EXTRA_DIST = ${sqlscripts_DATA}
index 8e28a79cca78cc4197c6cffc234617dd5b27025d..d8672486e04fcfcc5c087f192ad378d2bfc06f80 100644 (file)
@@ -2791,6 +2791,12 @@ CREATE INDEX lease4_by_hostname ON lease4 (hostname);
 # Create hostname index for lease6
 CREATE INDEX lease6_by_hostname ON lease6 (hostname);
 
+# Update the schema version number
+UPDATE schema_version
+SET version = '9', minor = '0';
+
+# This line concludes database upgrade to version 9.0.
+
 # Add new DDNS related columns to shared networks and subnets
 ALTER TABLE dhcp4_shared_network
     ADD COLUMN ddns_send_updates TINYINT(1) DEFAULT NULL,
@@ -2826,9 +2832,9 @@ ALTER TABLE dhcp6_subnet
 
 # Update the schema version number
 UPDATE schema_version
-SET version = '9', minor = '0';
+SET version = '9', minor = '1';
 
-# This line concludes database upgrade to version 9.0.
+# This line concludes database upgrade to version 9.1.
 
 
 # Notes:
index c67644b4deab0814c55cd5704fa2e055567df563..90732559d1929b2a3db7f9788a727a9403f45c14 100644 (file)
@@ -39,39 +39,6 @@ CREATE INDEX lease6_by_hostname ON lease6 (hostname);
 UPDATE schema_version
 SET version = '9', minor = '0';
 
-# Add new DDNS related columns to shared networks and subnets
-ALTER TABLE dhcp4_shared_network
-    ADD COLUMN ddns_send_updates TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_override_no_update TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_override_client_update TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_replace_client_name TINYINT(3) DEFAULT NULL,
-    ADD COLUMN ddns_generated_prefix VARCHAR(255) DEFAULT NULL,
-    ADD COLUMN ddns_qualifying_suffix VARCHAR(255) DEFAULT NULL;
-
-ALTER TABLE dhcp6_shared_network
-    ADD COLUMN ddns_send_updates TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_override_no_update TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_override_client_update TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_replace_client_name TINYINT(3) DEFAULT NULL,
-    ADD COLUMN ddns_generated_prefix VARCHAR(255) DEFAULT NULL,
-    ADD COLUMN ddns_qualifying_suffix VARCHAR(255) DEFAULT NULL;
-
-ALTER TABLE dhcp4_subnet
-    ADD COLUMN ddns_send_updates TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_override_no_update TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_override_client_update TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_replace_client_name TINYINT(3) DEFAULT NULL,
-    ADD COLUMN ddns_generated_prefix VARCHAR(255) DEFAULT NULL,
-    ADD COLUMN ddns_qualifying_suffix VARCHAR(255) DEFAULT NULL;
-
-ALTER TABLE dhcp6_subnet
-    ADD COLUMN ddns_send_updates TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_override_no_update TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_override_client_update TINYINT(1) DEFAULT NULL,
-    ADD COLUMN ddns_replace_client_name TINYINT(3) DEFAULT NULL,
-    ADD COLUMN ddns_generated_prefix VARCHAR(255) DEFAULT NULL,
-    ADD COLUMN ddns_qualifying_suffix VARCHAR(255) DEFAULT NULL;
-
 # This line concludes database upgrade to version 9.0.
 
 EOF
diff --git a/src/share/database/scripts/mysql/upgrade_9.0_to_9.1.sh.in b/src/share/database/scripts/mysql/upgrade_9.0_to_9.1.sh.in
new file mode 100644 (file)
index 0000000..77f3934
--- /dev/null
@@ -0,0 +1,64 @@
+#!/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.0" ]; then
+    printf "This script upgrades 9.0 to 9.1. Reported version is $VERSION. Skipping upgrade.\n"
+    exit 0
+fi
+
+mysql "$@" <<EOF
+
+# Add new DDNS related columns to shared networks and subnets
+ALTER TABLE dhcp4_shared_network
+    ADD COLUMN ddns_send_updates TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_override_no_update TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_override_client_update TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_replace_client_name TINYINT(3) DEFAULT NULL,
+    ADD COLUMN ddns_generated_prefix VARCHAR(255) DEFAULT NULL,
+    ADD COLUMN ddns_qualifying_suffix VARCHAR(255) DEFAULT NULL;
+
+ALTER TABLE dhcp6_shared_network
+    ADD COLUMN ddns_send_updates TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_override_no_update TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_override_client_update TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_replace_client_name TINYINT(3) DEFAULT NULL,
+    ADD COLUMN ddns_generated_prefix VARCHAR(255) DEFAULT NULL,
+    ADD COLUMN ddns_qualifying_suffix VARCHAR(255) DEFAULT NULL;
+
+ALTER TABLE dhcp4_subnet
+    ADD COLUMN ddns_send_updates TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_override_no_update TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_override_client_update TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_replace_client_name TINYINT(3) DEFAULT NULL,
+    ADD COLUMN ddns_generated_prefix VARCHAR(255) DEFAULT NULL,
+    ADD COLUMN ddns_qualifying_suffix VARCHAR(255) DEFAULT NULL;
+
+ALTER TABLE dhcp6_subnet
+    ADD COLUMN ddns_send_updates TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_override_no_update TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_override_client_update TINYINT(1) DEFAULT NULL,
+    ADD COLUMN ddns_replace_client_name TINYINT(3) DEFAULT NULL,
+    ADD COLUMN ddns_generated_prefix VARCHAR(255) DEFAULT NULL,
+    ADD COLUMN ddns_qualifying_suffix VARCHAR(255) DEFAULT NULL;
+
+# Update the schema version number
+UPDATE schema_version
+SET version = '9', minor = '1';
+
+# This line concludes database upgrade to version 9.1.
+
+EOF
+
+RESULT=$?
+
+exit $?