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/upgrade_8.1_to_8.2.sh
+ src/share/database/scripts/mysql/upgrade_8.2_to_9.0.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
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.2
+ # Ok, we have a 1.0 database. Let's upgrade it to 9.0
${keaadmin} db-upgrade mysql -u $db_user -p $db_password -n $db_name -d $db_scripts_dir
ERRCODE=$?
qry="select client_class, require_client_classes, user_context from dhcp6_pool"
run_statement "dhcp6_pool" "$qry"
- # Verify upgraded schema reports version 8.2
- version=$(${keaadmin} db-version mysql -u $db_user -p $db_password -n $db_name -d $db_scripts_dir)
- assert_str_eq "8.2" ${version} "Expected kea-admin to return %s, returned value was %s"
-
# Verify that dhcp4_option_def column name is is_array
qry="select is_array from dhcp4_option_def"
run_statement "dhcp4_option_def verify is_array column" "$qry"
qry="select is_array from dhcp6_option_def"
run_statement "dhcp6_option_def verify is_array column" "$qry"
+ # Verify upgraded schema reports version 9.0
+ 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"
+
+ # New allow_static_leases columns
+
+ # table dhcp4_shared_network
+ qry="select allow_static_leases from dhcp4_shared_network"
+ run_statement "dhcp4_shared_network" "$qry"
+
+ # table: dhcp4_subnet
+ qry="select allow_static_leases from dhcp4_subnet"
+ run_statement "dhcp4_subnet" "$qry"
+
+ # table dhcp6_shared_network
+ qry="select allow_static_leases from dhcp6_shared_network"
+ run_statement "dhcp6_shared_network" "$qry"
+
+ # table: dhcp6_subnet
+ qry="select allow_static_leases from dhcp6_subnet"
+ run_statement "dhcp6_subnet" "$qry"
+
# Let's wipe the whole database
mysql_wipe
/// @name Current database schema version values.
//@{
-const uint32_t MYSQL_SCHEMA_VERSION_MAJOR = 8;
-const uint32_t MYSQL_SCHEMA_VERSION_MINOR = 2;
+const uint32_t MYSQL_SCHEMA_VERSION_MAJOR = 9;
+const uint32_t MYSQL_SCHEMA_VERSION_MINOR = 0;
//@}
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 += wipe_data.sh
DISTCLEANFILES = upgrade_1.0_to_2.0.sh
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 += wipe_data.sh
EXTRA_DIST = ${sqlscripts_DATA}
# This line concludes database upgrade to version 8.2.
+# Add allow_static_leases columns
+ALTER TABLE dhcp4_shared_network
+ ADD COLUMN allow_static_leases TINYINT(1) DEFAULT NULL;
+
+ALTER TABLE dhcp4_subnet
+ ADD COLUMN allow_static_leases TINYINT(1) DEFAULT NULL;
+
+ALTER TABLE dhcp6_shared_network
+ ADD COLUMN allow_static_leases TINYINT(1) DEFAULT NULL;
+
+ALTER TABLE dhcp6_subnet
+ ADD COLUMN allow_static_leases TINYINT(1) DEFAULT NULL;
+
+# Update the schema version number
+UPDATE schema_version
+SET version = '9', minor = '0';
+
+# This line concludes database upgrade to version 9.0.
# Notes:
#
--- /dev/null
+#!/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" != "8.2" ]; then
+ printf "This script upgrades 8.2 to 9.0. Reported version is $VERSION. Skipping upgrade.\n"
+ exit 0
+fi
+
+mysql "$@" <<EOF
+
+# Add allow_static_leases columns
+ALTER TABLE dhcp4_shared_network
+ ADD COLUMN allow_static_leases TINYINT(1) DEFAULT NULL;
+
+ALTER TABLE dhcp4_subnet
+ ADD COLUMN allow_static_leases TINYINT(1) DEFAULT NULL;
+
+ALTER TABLE dhcp6_shared_network
+ ADD COLUMN allow_static_leases TINYINT(1) DEFAULT NULL;
+
+ALTER TABLE dhcp6_subnet
+ ADD COLUMN allow_static_leases TINYINT(1) DEFAULT NULL;
+
+# Update the schema version number
+UPDATE schema_version
+SET version = '9', minor = '0';
+
+# This line concludes database upgrade to version 9.0.
+
+EOF
+
+RESULT=$?
+
+exit $?