]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1405] added upgrade schema scripts
authorRazvan Becheriu <razvan@isc.org>
Tue, 13 Oct 2020 08:36:56 +0000 (11:36 +0300)
committerRazvan Becheriu <razvan@isc.org>
Wed, 18 Nov 2020 13:55:22 +0000 (15:55 +0200)
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.4_to_9.5.sh.in [new file with mode: 0644]

index f34befc7e542cb9b55eb888faae5e2acd00b7463..1f60b245b543e2dc2816cdc1934d37924fe91d5d 100644 (file)
@@ -15,4 +15,5 @@
 /upgrade_9.1_to_9.2.sh
 /upgrade_9.2_to_9.3.sh
 /upgrade_9.3_to_9.4.sh
+/upgrade_9.4_to_9.5.sh
 /wipe_data.sh
index ec9de9300e97dbbe8414c3ce3c44362c3dddf2d6..8b4787d446dfa689b693860a9799d4138c38dac0 100644 (file)
@@ -18,6 +18,7 @@ UPGRADESCRIPTS += upgrade_9.0_to_9.1.sh
 UPGRADESCRIPTS += upgrade_9.1_to_9.2.sh
 UPGRADESCRIPTS += upgrade_9.2_to_9.3.sh
 UPGRADESCRIPTS += upgrade_9.3_to_9.4.sh
+UPGRADESCRIPTS += upgrade_9.4_to_9.5.sh
 UPGRADESCRIPTS += wipe_data.sh
 
 sqlscriptsdir = ${datarootdir}/${PACKAGE_NAME}/scripts/mysql
index 0775ccee6b8258719786d6ace4ba49cd96375b2c..cd1894319dbb359b021bce465995768a55be5013 100644 (file)
@@ -3027,6 +3027,31 @@ SET version = '9', minor = '4';
 
 # This line concludes database upgrade to version 9.4.
 
+# Update reservation_mode value after separating flags.
+CREATE TABLE reservation_modes (
+    reservation_mode TINYINT PRIMARY KEY NOT NULL,    # Reservation mode code.
+    name VARCHAR(5)                                   # Reservation mode name.
+    ) ENGINE = INNODB;
+
+START TRANSACTION;
+INSERT INTO reservation_mode VALUES (0, 'disabled');      # disabled
+INSERT INTO reservation_mode VALUES (1, 'out-of-pool');   # out-of-pool
+INSERT INTO reservation_mode VALUES (2, 'in-subnet');     # in-subnet
+INSERT INTO reservation_mode VALUES (3, 'all');           # all (in-subnet + out-of-pool)
+INSERT INTO reservation_mode VALUES (4, 'global');        # global
+COMMIT;
+
+UPDATE dhcp4_subnet SET reservation_mode = 4 WHERE reservation_mode = 2;
+UPDATE dhcp4_shared_network SET reservation_mode = 4 WHERE reservation_mode = 2;
+UPDATE dhcp6_subnet SET reservation_mode = 4 WHERE reservation_mode = 2;
+UPDATE dhcp6_shared_network SET reservation_mode = 4 WHERE reservation_mode = 2;
+
+# Update the schema version number
+UPDATE schema_version
+SET version = '9', minor = '5';
+
+# This line concludes database upgrade to version 9.5.
+
 # Notes:
 #
 # Indexes
diff --git a/src/share/database/scripts/mysql/upgrade_9.4_to_9.5.sh.in b/src/share/database/scripts/mysql/upgrade_9.4_to_9.5.sh.in
new file mode 100644 (file)
index 0000000..83ab0de
--- /dev/null
@@ -0,0 +1,50 @@
+#!/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.4" ]; then
+    printf "This script upgrades 9.4 to 9.5. Reported version is $VERSION. Skipping upgrade.\n"
+    exit 0
+fi
+
+mysql "$@" <<EOF
+
+# Update reservation_mode value after separating flags.
+CREATE TABLE reservation_modes (
+    reservation_mode TINYINT PRIMARY KEY NOT NULL,    # Reservation mode code.
+    name VARCHAR(5)                                   # Reservation mode name.
+    ) ENGINE = INNODB;
+
+START TRANSACTION;
+INSERT INTO reservation_mode VALUES (0, 'disabled');      # disabled
+INSERT INTO reservation_mode VALUES (1, 'out-of-pool');   # out-of-pool
+INSERT INTO reservation_mode VALUES (2, 'in-subnet');     # in-subnet
+INSERT INTO reservation_mode VALUES (3, 'all');           # all (in-subnet + out-of-pool)
+INSERT INTO reservation_mode VALUES (4, 'global');        # global
+COMMIT;
+
+UPDATE dhcp4_subnet SET reservation_mode = 4 WHERE reservation_mode = 2;
+UPDATE dhcp4_shared_network SET reservation_mode = 4 WHERE reservation_mode = 2;
+UPDATE dhcp6_subnet SET reservation_mode = 4 WHERE reservation_mode = 2;
+UPDATE dhcp6_shared_network SET reservation_mode = 4 WHERE reservation_mode = 2;
+
+# Update the schema version number
+UPDATE schema_version
+SET version = '9', minor = '5';
+
+# This line concludes database upgrade to version 9.5.
+
+EOF
+
+RESULT=$?
+
+exit $?