]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[295-min-max-lease-time-configuration-options] Moved MySQL schema updates to version 8.1
authorFrancis Dupont <fdupont@isc.org>
Fri, 21 Jun 2019 13:17:04 +0000 (15:17 +0200)
committerFrancis Dupont <fdupont@isc.org>
Sat, 22 Jun 2019 14:05:24 +0000 (10:05 -0400)
configure.ac
src/bin/admin/tests/mysql_tests.sh.in
src/lib/mysql/mysql_constants.h
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_7.0_to_8.0.sh.in
src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh.in [new file with mode: 0644]

index 6e678c93208d2fbb1c1bb22ef6821ce725dd9c0c..4ccfdb500a52a1ca89c06346834ff6069e19681a 100644 (file)
@@ -1717,6 +1717,7 @@ AC_CONFIG_FILES([Makefile
                  src/share/database/scripts/mysql/upgrade_5.2_to_6.0.sh
                  src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh
                  src/share/database/scripts/mysql/upgrade_7.0_to_8.0.sh
+                 src/share/database/scripts/mysql/upgrade_8.0_to_8.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 da9cd85880bafff736abd1c332f9fcf490d2a873..ecde4117e93e4eb1700c4fba3c13833a9117caba 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 8.0
+    # Ok, we have a 1.0 database. Let's upgrade it to 8.1
     ${keaadmin} lease-upgrade mysql -u $db_user -p $db_password -n $db_name -d $db_scripts_dir
     ERRCODE=$?
 
@@ -689,6 +689,8 @@ EOF
     qry="SELECT COUNT(*) FROM parameter_data_type";
     run_statement "parameter_data_type count" "$qry" 4;
 
+    # Schema upgrade from 8.0 to 8.1
+
     # New lifetime bounds.
 
     # table: dhcp4_shared_network
@@ -707,9 +709,9 @@ EOF
     qry="select subnet_prefix, client_class, interface, modification_ts, preferred_lifetime, min_preferred_lifetime, max_preferred_lifetime, rapid_commit, rebind_timer, relay, renew_timer, require_client_classes, reservation_mode, shared_network_name, subnet_id, user_context, valid_lifetime, min_valid_lifetime, max_valid_lifetime, calculate_tee_times, t1_percent, t2_percent from dhcp6_subnet"
     run_statement "dhcp6_subnet" "$qry"
 
-    # Verify upgraded schema reports version 8.0
+    # Verify upgraded schema reports version 8.1
     version=$(${keaadmin} lease-version mysql -u $db_user -p $db_password -n $db_name -d $db_scripts_dir)
-    assert_str_eq "8.0" ${version} "Expected kea-admin to return %s, returned value was %s"
+    assert_str_eq "8.1" ${version} "Expected kea-admin to return %s, returned value was %s"
 
     # Let's wipe the whole database
     mysql_wipe
index a18c4e027c22dab4209edc5c8bf42e85d2b53f89..348c7c5213f75f4172d68da0fd620971911a79cc 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 = 8;
-const uint32_t MYSQL_SCHEMA_VERSION_MINOR = 0;
+const uint32_t MYSQL_SCHEMA_VERSION_MINOR = 1;
 
 //@}
 
index 8aa1c26ae047b4bf3434ef2e601b159580dde270..524e3c83651750b3557cd969d42c4604423ce7f1 100644 (file)
@@ -8,4 +8,5 @@
 /upgrade_5.2_to_6.0.sh
 /upgrade_6.0_to_7.0.sh
 /upgrade_7.0_to_8.0.sh
+/upgrade_8.0_to_8.1.sh
 /wipe_data.sh
index 61263c38d2e58f8287b1abc14e7aab08c727d9e6..1f8584206992c63a2b633c612d7ebad2a246226a 100644 (file)
@@ -13,6 +13,7 @@ sqlscripts_DATA += upgrade_5.1_to_5.2.sh
 sqlscripts_DATA += upgrade_5.2_to_6.0.sh
 sqlscripts_DATA += upgrade_6.0_to_7.0.sh
 sqlscripts_DATA += upgrade_7.0_to_8.0.sh
+sqlscripts_DATA += upgrade_8.0_to_8.1.sh
 sqlscripts_DATA += wipe_data.sh
 
 DISTCLEANFILES = upgrade_1.0_to_2.0.sh
@@ -25,6 +26,7 @@ DISTCLEANFILES += upgrade_5.1_to_5.2.sh
 DISTCLEANFILES += upgrade_5.2_to_6.0.sh
 DISTCLEANFILES += upgrade_6.0_to_7.0.sh
 DISTCLEANFILES += upgrade_7.0_to_8.0.sh
+DISTCLEANFILES += upgrade_8.0_to_8.1.sh
 DISTCLEANFILES += wipe_data.sh
 
 EXTRA_DIST = ${sqlscripts_DATA}
index 7efb7f9213a5b8da74f2694d5d9ee0661f46b034..a4c0848da89a7d9c02d26636a6314128fb91da5b 100644 (file)
@@ -2286,6 +2286,12 @@ CREATE TRIGGER dhcp6_options_ADEL AFTER DELETE ON dhcp6_options
     END $$
 DELIMITER ;
 
+# Update the schema version number
+UPDATE schema_version
+SET version = '8', minor = '0';
+
+# This line concludes database upgrade to version 8.0.
+
 # Add lifetime bounds
 ALTER TABLE dhcp4_shared_network
     ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
@@ -2309,10 +2315,9 @@ ALTER TABLE dhcp6_subnet
 
 # Update the schema version number
 UPDATE schema_version
-SET version = '8', minor = '0';
-
-# This line concludes database upgrade to version 8.0.
+SET version = '8', minor = '1';
 
+# This line concludes database upgrade to version 8.1.
 
 # Notes:
 #
index 5049a85f5bf68d9ebe0300244df45293bcc65139..8f2a4ebec73be2e76a47cd67380b4696ebe7b986 100644 (file)
@@ -969,27 +969,6 @@ CREATE TRIGGER dhcp6_options_ADEL AFTER DELETE ON dhcp6_options
     END $$
 DELIMITER ;
 
-# Add lifetime bounds
-ALTER TABLE dhcp4_shared_network
-    ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
-    ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL;
-
-ALTER TABLE dhcp4_subnet
-    ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
-    ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL;
-
-ALTER TABLE dhcp6_shared_network
-    ADD COLUMN min_preferred_lifetime INT(10) DEFAULT NULL,
-    ADD COLUMN max_preferred_lifetime INT(10) DEFAULT NULL,
-    ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
-    ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL;
-
-ALTER TABLE dhcp6_subnet
-    ADD COLUMN min_preferred_lifetime INT(10) DEFAULT NULL,
-    ADD COLUMN max_preferred_lifetime INT(10) DEFAULT NULL,
-    ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
-    ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL;
-
 # Update the schema version number
 UPDATE schema_version
 SET version = '8', minor = '0';
diff --git a/src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh.in b/src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh.in
new file mode 100644 (file)
index 0000000..ba696c9
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# 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" != "8.0" ]; then
+    printf "This script upgrades 8.0 to 8.1. Reported version is $VERSION. Skipping upgrade.\n"
+    exit 0
+fi
+
+mysql "$@" <<EOF
+
+# Add lifetime bounds
+ALTER TABLE dhcp4_shared_network
+    ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
+    ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL;
+
+ALTER TABLE dhcp4_subnet
+    ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
+    ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL;
+
+ALTER TABLE dhcp6_shared_network
+    ADD COLUMN min_preferred_lifetime INT(10) DEFAULT NULL,
+    ADD COLUMN max_preferred_lifetime INT(10) DEFAULT NULL,
+    ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
+    ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL;
+
+ALTER TABLE dhcp6_subnet
+    ADD COLUMN min_preferred_lifetime INT(10) DEFAULT NULL,
+    ADD COLUMN max_preferred_lifetime INT(10) DEFAULT NULL,
+    ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
+    ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL;
+
+# Update the schema version number
+UPDATE schema_version
+SET version = '8', minor = '1';
+
+# This line concludes database upgrade to version 8.1.
+
+EOF
+
+RESULT=$?
+
+exit $?