mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-01 14:35:29 +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:
@@ -1727,6 +1727,18 @@ mysql_client_class_test() {
|
|||||||
ON c.id = o.class_id WHERE c.name = 'foo'";
|
ON c.id = o.class_id WHERE c.name = 'foo'";
|
||||||
run_statement "#get order index of class foo" "$sql" 1
|
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
|
# Let's wipe the whole database
|
||||||
mysql_wipe
|
mysql_wipe
|
||||||
|
|
||||||
|
@@ -4046,6 +4046,17 @@ UPDATE schema_version
|
|||||||
|
|
||||||
# This line concludes database upgrade to version 11.
|
# 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
|
# Add a foreign keys referencing a client classes. If an option is
|
||||||
# associated with a client class, the option will be deleted
|
# associated with a client class, the option will be deleted
|
||||||
# along with the deleted client class.
|
# along with the deleted client class.
|
||||||
|
@@ -53,6 +53,17 @@ fi
|
|||||||
|
|
||||||
mysql "$@" <<EOF
|
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
|
-- Add a foreign keys referencing a client classes. If an option is
|
||||||
-- associated with a client class, the option will be deleted
|
-- associated with a client class, the option will be deleted
|
||||||
-- along with the deleted client class.
|
-- along with the deleted client class.
|
||||||
|
Reference in New Issue
Block a user