diff options
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | src/lib/mysql/mysql_constants.h | 2 | ||||
-rw-r--r-- | src/lib/pgsql/pgsql_connection.h | 2 | ||||
-rw-r--r-- | src/share/database/scripts/mysql/.gitignore | 1 | ||||
-rw-r--r-- | src/share/database/scripts/mysql/Makefile.am | 1 | ||||
-rw-r--r-- | src/share/database/scripts/mysql/dhcpdb_create.mysql | 20 | ||||
-rw-r--r-- | src/share/database/scripts/mysql/upgrade_016_to_017.sh.in | 74 | ||||
-rw-r--r-- | src/share/database/scripts/pgsql/.gitignore | 1 | ||||
-rw-r--r-- | src/share/database/scripts/pgsql/Makefile.am | 1 | ||||
-rw-r--r-- | src/share/database/scripts/pgsql/dhcpdb_create.pgsql | 20 | ||||
-rw-r--r-- | src/share/database/scripts/pgsql/upgrade_015_to_016.sh.in | 62 |
11 files changed, 186 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index 3ce0bdbb5c..b1d665f7d8 100644 --- a/configure.ac +++ b/configure.ac @@ -1706,6 +1706,8 @@ AC_CONFIG_FILES([src/share/database/scripts/mysql/upgrade_014_to_015.sh], [chmod +x src/share/database/scripts/mysql/upgrade_014_to_015.sh]) AC_CONFIG_FILES([src/share/database/scripts/mysql/upgrade_015_to_016.sh], [chmod +x src/share/database/scripts/mysql/upgrade_015_to_016.sh]) +AC_CONFIG_FILES([src/share/database/scripts/mysql/upgrade_016_to_017.sh], + [chmod +x src/share/database/scripts/mysql/upgrade_016_to_017.sh]) AC_CONFIG_FILES([src/share/database/scripts/mysql/wipe_data.sh], [chmod +x src/share/database/scripts/mysql/wipe_data.sh]) AC_CONFIG_FILES([src/share/database/scripts/pgsql/Makefile]) @@ -1749,6 +1751,8 @@ AC_CONFIG_FILES([src/share/database/scripts/pgsql/upgrade_013_to_014.sh], [chmod +x src/share/database/scripts/pgsql/upgrade_013_to_014.sh]) AC_CONFIG_FILES([src/share/database/scripts/pgsql/upgrade_014_to_015.sh], [chmod +x src/share/database/scripts/pgsql/upgrade_014_to_015.sh]) +AC_CONFIG_FILES([src/share/database/scripts/pgsql/upgrade_015_to_016.sh], + [chmod +x src/share/database/scripts/pgsql/upgrade_015_to_016.sh]) AC_CONFIG_FILES([src/share/database/scripts/pgsql/wipe_data.sh], [chmod +x src/share/database/scripts/pgsql/wipe_data.sh]) AC_CONFIG_FILES([src/share/yang/Makefile]) diff --git a/src/lib/mysql/mysql_constants.h b/src/lib/mysql/mysql_constants.h index f3516c95a0..58160bdbdd 100644 --- a/src/lib/mysql/mysql_constants.h +++ b/src/lib/mysql/mysql_constants.h @@ -52,7 +52,7 @@ const int MLM_MYSQL_FETCH_FAILURE = 0; /// @name Current database schema version values. //@{ -const uint32_t MYSQL_SCHEMA_VERSION_MAJOR = 16; +const uint32_t MYSQL_SCHEMA_VERSION_MAJOR = 17; const uint32_t MYSQL_SCHEMA_VERSION_MINOR = 0; //@} diff --git a/src/lib/pgsql/pgsql_connection.h b/src/lib/pgsql/pgsql_connection.h index 4c4940efa0..51fa34c282 100644 --- a/src/lib/pgsql/pgsql_connection.h +++ b/src/lib/pgsql/pgsql_connection.h @@ -18,7 +18,7 @@ namespace isc { namespace db { /// @brief Define the PostgreSQL backend version. -const uint32_t PGSQL_SCHEMA_VERSION_MAJOR = 15; +const uint32_t PGSQL_SCHEMA_VERSION_MAJOR = 16; const uint32_t PGSQL_SCHEMA_VERSION_MINOR = 0; // Maximum number of parameters that can be used a statement diff --git a/src/share/database/scripts/mysql/.gitignore b/src/share/database/scripts/mysql/.gitignore index c9945fdf9e..c3c5062886 100644 --- a/src/share/database/scripts/mysql/.gitignore +++ b/src/share/database/scripts/mysql/.gitignore @@ -24,4 +24,5 @@ /upgrade_013_to_014.sh /upgrade_014_to_015.sh /upgrade_015_to_016.sh +/upgrade_016_to_017.sh /wipe_data.sh diff --git a/src/share/database/scripts/mysql/Makefile.am b/src/share/database/scripts/mysql/Makefile.am index af8c8c5dcb..50fbc295bb 100644 --- a/src/share/database/scripts/mysql/Makefile.am +++ b/src/share/database/scripts/mysql/Makefile.am @@ -35,6 +35,7 @@ mysql_SCRIPTS += upgrade_012_to_013.sh mysql_SCRIPTS += upgrade_013_to_014.sh mysql_SCRIPTS += upgrade_014_to_015.sh mysql_SCRIPTS += upgrade_015_to_016.sh +mysql_SCRIPTS += upgrade_016_to_017.sh mysql_SCRIPTS += wipe_data.sh DISTCLEANFILES = ${mysql_SCRIPTS} diff --git a/src/share/database/scripts/mysql/dhcpdb_create.mysql b/src/share/database/scripts/mysql/dhcpdb_create.mysql index 94741a6eb7..d6784e13ae 100644 --- a/src/share/database/scripts/mysql/dhcpdb_create.mysql +++ b/src/share/database/scripts/mysql/dhcpdb_create.mysql @@ -5109,6 +5109,26 @@ UPDATE schema_version -- This line concludes the schema upgrade to version 16. +-- This line starts the schema upgrade to version 17. + +-- Add the allocator column to the DHCPv4 tables. +ALTER TABLE dhcp4_subnet ADD COLUMN allocator TEXT NULL; +ALTER TABLE dhcp4_shared_network ADD COLUMN allocator TEXT NULL; + +-- Add allocator and pd_allocator to the DHCPv6 subnet tables. +ALTER TABLE dhcp6_subnet ADD COLUMN allocator TEXT NULL; +ALTER TABLE dhcp6_subnet ADD COLUMN pd_allocator TEXT NULL; + +-- Add allocator and pd_allocator to the DHCPv6 shared network tables. +ALTER TABLE dhcp6_shared_network ADD COLUMN allocator TEXT NULL; +ALTER TABLE dhcp6_shared_network ADD COLUMN pd_allocator TEXT NULL; + +-- Update the schema version number. +UPDATE schema_version + SET version = '17', minor = '0'; + +-- This line concludes the schema upgrade to version 17. + # Notes: # # Indexes diff --git a/src/share/database/scripts/mysql/upgrade_016_to_017.sh.in b/src/share/database/scripts/mysql/upgrade_016_to_017.sh.in new file mode 100644 index 0000000000..31e4e1a30f --- /dev/null +++ b/src/share/database/scripts/mysql/upgrade_016_to_017.sh.in @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright (C) 2023 Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# shellcheck disable=SC1091 +# SC1091: Not following: ... was not specified as input (see shellcheck -x). + +# Exit with error if commands exit with non-zero and if undefined variables are +# used. +set -eu + +# shellcheck disable=SC2034 +# SC2034: ... appears unused. Verify use (or export if used externally). +prefix="@prefix@" + +# Include utilities. Use installed version if available and +# use build version if it isn't. +if test -f "@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 + +# Check version. +version=$(mysql_version "${@}") +if test "${version}" != "16.0"; then + printf 'This script upgrades 16.0 to 17.0. ' + printf 'Reported version is %s. Skipping upgrade.\n' "${version}" + exit 0 +fi + +# Get the schema name from database argument. We need this to +# query information_schema for the right database. +for arg in "${@}" +do + if ! printf '%s' "${arg}" | grep -Eq '^\-\-' + then + schema="$arg" + break + fi +done + +# Make sure we have the schema. +if [ -z "$schema" ] +then + printf "Could not find database schema name in cmd line args: %s\n" "${*}" + exit 255 +fi + +mysql "$@" <<EOF +-- This line starts the schema upgrade to version 17. + +-- Add the allocator column to the DHCPv4 tables. +ALTER TABLE dhcp4_subnet ADD COLUMN allocator TEXT NULL; +ALTER TABLE dhcp4_shared_network ADD COLUMN allocator TEXT NULL; + +-- Add allocator and pd_allocator to the DHCPv6 subnet tables. +ALTER TABLE dhcp6_subnet ADD COLUMN allocator TEXT NULL; +ALTER TABLE dhcp6_subnet ADD COLUMN pd_allocator TEXT NULL; + +-- Add allocator and pd_allocator to the DHCPv6 shared network tables. +ALTER TABLE dhcp6_shared_network ADD COLUMN allocator TEXT NULL; +ALTER TABLE dhcp6_shared_network ADD COLUMN pd_allocator TEXT NULL; + +-- Update the schema version number. +UPDATE schema_version + SET version = '17', minor = '0'; + +-- This line concludes the schema upgrade to version 17. +EOF diff --git a/src/share/database/scripts/pgsql/.gitignore b/src/share/database/scripts/pgsql/.gitignore index 72383371d3..465cd32b1d 100644 --- a/src/share/database/scripts/pgsql/.gitignore +++ b/src/share/database/scripts/pgsql/.gitignore @@ -18,4 +18,5 @@ /upgrade_012_to_013.sh /upgrade_013_to_014.sh /upgrade_014_to_015.sh +/upgrade_015_to_016.sh /wipe_data.sh diff --git a/src/share/database/scripts/pgsql/Makefile.am b/src/share/database/scripts/pgsql/Makefile.am index 35ae50fe1e..fbd5c69732 100644 --- a/src/share/database/scripts/pgsql/Makefile.am +++ b/src/share/database/scripts/pgsql/Makefile.am @@ -29,6 +29,7 @@ pgsql_SCRIPTS += upgrade_011_to_012.sh pgsql_SCRIPTS += upgrade_012_to_013.sh pgsql_SCRIPTS += upgrade_013_to_014.sh pgsql_SCRIPTS += upgrade_014_to_015.sh +pgsql_SCRIPTS += upgrade_015_to_016.sh pgsql_SCRIPTS += wipe_data.sh DISTCLEANFILES = ${pgsql_SCRIPTS} diff --git a/src/share/database/scripts/pgsql/dhcpdb_create.pgsql b/src/share/database/scripts/pgsql/dhcpdb_create.pgsql index ea97fbc490..e4d3f53155 100644 --- a/src/share/database/scripts/pgsql/dhcpdb_create.pgsql +++ b/src/share/database/scripts/pgsql/dhcpdb_create.pgsql @@ -5669,6 +5669,26 @@ UPDATE schema_version -- This line concludes the schema upgrade to version 15. +-- This line starts the schema upgrade to version 16. + +-- Add the allocator column to the DHCPv4 tables. +ALTER TABLE dhcp4_subnet ADD COLUMN allocator TEXT DEFAULT NULL; +ALTER TABLE dhcp4_shared_network ADD COLUMN allocator TEXT DEFAULT NULL; + +-- Add allocator and pd_allocator to the DHCPv6 subnet tables. +ALTER TABLE dhcp6_subnet ADD COLUMN allocator TEXT DEFAULT NULL; +ALTER TABLE dhcp6_subnet ADD COLUMN pd_allocator TEXT DEFAULT NULL; + +-- Add allocator and pd_allocator to the DHCPv6 shared network tables. +ALTER TABLE dhcp6_shared_network ADD COLUMN allocator TEXT DEFAULT NULL; +ALTER TABLE dhcp6_shared_network ADD COLUMN pd_allocator TEXT DEFAULT NULL; + +-- Update the schema version number. +UPDATE schema_version + SET version = '16', minor = '0'; + +-- This line concludes the schema upgrade to version 16. + -- Commit the script transaction. COMMIT; diff --git a/src/share/database/scripts/pgsql/upgrade_015_to_016.sh.in b/src/share/database/scripts/pgsql/upgrade_015_to_016.sh.in new file mode 100644 index 0000000000..c123873579 --- /dev/null +++ b/src/share/database/scripts/pgsql/upgrade_015_to_016.sh.in @@ -0,0 +1,62 @@ +#!/bin/sh + +# Copyright (C) 2023 Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# shellcheck disable=SC1091 +# SC1091: Not following: ... was not specified as input (see shellcheck -x). + +# Exit with error if commands exit with non-zero and if undefined variables are +# used. +set -eu + +# shellcheck disable=SC2034 +# SC2034: ... appears unused. Verify use (or export if used externally). +prefix="@prefix@" + +# Include utilities. Use installed version if available and +# use build version if it isn't. +if test -f "@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=$(pgsql_version "$@") + +if [ "$VERSION" != "15.0" ]; then + printf 'This script upgrades 15.0 to 16.0. ' + printf 'Reported version is %s. Skipping upgrade.\n' "${VERSION}" + exit 0 +fi + +psql "$@" >/dev/null <<EOF +START TRANSACTION; + +-- This line starts the schema upgrade to version 16. + +-- Add the allocator column to the DHCPv4 tables. +ALTER TABLE dhcp4_subnet ADD COLUMN allocator TEXT DEFAULT NULL; +ALTER TABLE dhcp4_shared_network ADD COLUMN allocator TEXT DEFAULT NULL; + +-- Add allocator and pd_allocator to the DHCPv6 subnet tables. +ALTER TABLE dhcp6_subnet ADD COLUMN allocator TEXT DEFAULT NULL; +ALTER TABLE dhcp6_subnet ADD COLUMN pd_allocator TEXT DEFAULT NULL; + +-- Add allocator and pd_allocator to the DHCPv6 shared network tables. +ALTER TABLE dhcp6_shared_network ADD COLUMN allocator TEXT DEFAULT NULL; +ALTER TABLE dhcp6_shared_network ADD COLUMN pd_allocator TEXT DEFAULT NULL; + +-- Update the schema version number. +UPDATE schema_version + SET version = '16', minor = '0'; + +-- This line concludes the schema upgrade to version 16. + +-- Commit the script transaction. +COMMIT; + +EOF |