2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-31 14:05:33 +00:00

[#2094] Updated MySQL migration 12

The dhcp_client_class values are set to NULL when the options do not
belong to a class.
This commit is contained in:
Marcin Siodelski
2021-09-20 11:51:34 +02:00
parent b4f5a243c6
commit a70a230aaf
3 changed files with 34 additions and 0 deletions

View File

@@ -1727,6 +1727,18 @@ mysql_client_class_test() {
ON c.id = o.class_id WHERE c.name = 'foo'";
run_statement "#get order index of class foo" "$sql" 1
sql=\
"SET @disable_audit = 1; \
INSERT INTO ${table_prefix}_options(code, scope_id, dhcp_client_class, modification_ts) \
VALUES (222, 0, '', now()); \
SET @disable_audit = 0;"
run_statement "add option with an empty dhcp_client class" "$sql"
# Let's make sure that we can upgrade to version 12.0. This version
# introduces a foreign key between dhcpX_client_class and dhcpX_options
# table. The migration should set the dhcp_client_class to NULL.
mysql_upgrade_schema_to_version 12.0
# Let's wipe the whole database
mysql_wipe

View File

@@ -4046,6 +4046,17 @@ UPDATE schema_version
# This line concludes database upgrade to version 11.
# Ensure that dhcp_client_class is NULL when an option does not
# belong to any client class. Later, we will add foreign keys for
# the dhcp_client_class columns, and it requires that the columns
# are NULL when there are no corresponding client classes.
SET @disable_audit = 1;
UPDATE dhcp4_options SET dhcp_client_class = NULL
WHERE scope_id <> 2;
UPDATE dhcp6_options SET dhcp_client_class = NULL
WHERE scope_id <> 2;
SET @disable_audit = 0;
# Add a foreign keys referencing a client classes. If an option is
# associated with a client class, the option will be deleted
# along with the deleted client class.

View File

@@ -53,6 +53,17 @@ fi
mysql "$@" <<EOF
-- Ensure that dhcp_client_class is NULL when an option does not
-- belong to any client class. Later, we will add foreign keys for
-- the dhcp_client_class columns, and it requires that the columns
-- are NULL when there are no corresponding client classes.
SET @disable_audit = 1;
UPDATE dhcp4_options SET dhcp_client_class = NULL
WHERE scope_id <> 2;
UPDATE dhcp6_options SET dhcp_client_class = NULL
WHERE scope_id <> 2;
SET @disable_audit = 0;
-- Add a foreign keys referencing a client classes. If an option is
-- associated with a client class, the option will be deleted
-- along with the deleted client class.