Skip to content

Commit

Permalink
[#89,!22] Modified MySQL 6->7 upgrade script according to review.
Browse files Browse the repository at this point in the history
  • Loading branch information
msiodelski committed Sep 18, 2018
1 parent 5770699 commit 4c4a676
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 33 deletions.
5 changes: 2 additions & 3 deletions src/share/database/scripts/mysql/dhcpdb_create.mysql
Original file line number Diff line number Diff line change
Expand Up @@ -953,8 +953,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet (
user_context LONGTEXT,
valid_lifetime INT(10) DEFAULT NULL,
PRIMARY KEY (subnet_id),
UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
KEY subnet4_subnet_prefix (subnet_prefix),
UNIQUE KEY subnet4_subnet_prefix (subnet_prefix),
KEY fk_dhcp4_subnet_shared_network (shared_network_name),
KEY key_dhcp4_subnet_modification_ts (modification_ts),
CONSTRAINT fk_dhcp4_subnet_shared_network FOREIGN KEY (shared_network_name)
Expand Down Expand Up @@ -1190,7 +1189,7 @@ CREATE TABLE dhcp6_subnet (
user_context LONGTEXT,
valid_lifetime INT(10) DEFAULT NULL,
PRIMARY KEY (subnet_id),
UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
UNIQUE KEY subnet_prefix_UNIQUE (subnet_prefix),
KEY subnet6_subnet_prefix (subnet_prefix),
KEY fk_dhcp6_subnet_shared_network (shared_network_name),
KEY key_dhcp6_subnet_modification_ts (modification_ts),
Expand Down
87 changes: 57 additions & 30 deletions src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -129,26 +129,26 @@ INSERT INTO modification(id, modification_type)
VALUES(2, "delete");
# Create table dhcp4_server
#
CREATE TABLE IF NOT EXISTS dhcp4_server (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(256) NOT NULL,
description TEXT,
modification_ts TIMESTAMP NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY dhcp4_server_tag_UNIQUE (tag),
UNIQUE KEY id_UNIQUE (id),
KEY key_dhcp4_server_modification_ts (modification_ts)
) ENGINE=InnoDB;
# Create table dhcp4_audit
#
CREATE TABLE IF NOT EXISTS dhcp4_audit (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
object_type VARCHAR(256) NOT NULL,
object_id VARCHAR(128) NOT NULL,
object_id BIGINT(2) UNSIGNED NOT NULL,
modification_type TINYINT(1) NOT NULL,
modification_ts TIMESTAMP NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY id_UNIQUE (id),
KEY key_dhcp4_audit_by_modification_ts (modification_ts),
KEY fk_dhcp4_audit_modification_type (modification_type),
CONSTRAINT fk_dhcp4_audit_modification_type FOREIGN KEY (modification_type)
Expand All @@ -157,18 +157,20 @@ CREATE TABLE IF NOT EXISTS dhcp4_audit (
) ENGINE=InnoDB;
# Create table dhcp4_global_parameter
#
CREATE TABLE IF NOT EXISTS dhcp4_global_parameter (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(128) NOT NULL,
value LONGTEXT NOT NULL,
modification_ts timestamp NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY id_UNIQUE (id),
KEY key_dhcp4_global_parameter_modification_ts (modification_ts),
KEY key_dhcp4_global_parameter_name (name)
) ENGINE=InnoDB;
# Create table dhcp4_global_parameter_server
# M-to-M cross-reference between global parameters and servers
#
CREATE TABLE IF NOT EXISTS dhcp4_global_parameter_server (
parameter_id BIGINT(20) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
Expand All @@ -185,6 +187,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_global_parameter_server (
) ENGINE=InnoDB;
# Create table dhcp4_option_def
#
CREATE TABLE IF NOT EXISTS dhcp4_option_def (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
code TINYINT(3) UNSIGNED NOT NULL,
Expand All @@ -195,12 +198,13 @@ CREATE TABLE IF NOT EXISTS dhcp4_option_def (
record_types VARCHAR(512) DEFAULT NULL,
user_context LONGTEXT,
PRIMARY KEY (id),
UNIQUE KEY id_UNIQUE (id),
KEY key_dhcp4_option_def_modification_ts (modification_ts),
KEY key_dhcp4_option_def_code_space (code, space)
) ENGINE=InnoDB;
# Create table dhcp4_option_def_server
# M-to-M cross-reference between option definitions and servers
#
CREATE TABLE IF NOT EXISTS dhcp4_option_def_server (
option_def_id BIGINT(20) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
Expand All @@ -216,7 +220,9 @@ CREATE TABLE IF NOT EXISTS dhcp4_option_def_server (
) ENGINE=InnoDB;
# Create table dhcp4_shared_network
#
CREATE TABLE IF NOT EXISTS dhcp4_shared_network (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(128) NOT NULL,
client_class VARCHAR(128) DEFAULT NULL,
interface VARCHAR(128) DEFAULT NULL,
Expand All @@ -230,27 +236,32 @@ CREATE TABLE IF NOT EXISTS dhcp4_shared_network (
server_hostname VARCHAR(512) DEFAULT NULL,
user_context LONGTEXT,
valid_lifetime INT(10) DEFAULT NULL,
PRIMARY KEY (name),
PRIMARY KEY (id),
UNIQUE KEY name_UNIQUE (name),
KEY key_dhcp4_shared_network_modification_ts (modification_ts)
) ENGINE=InnoDB;
# Create table dhcp4_shared_network_server
# M-to-M cross-reference between shared networks and servers
#
CREATE TABLE IF NOT EXISTS dhcp4_shared_network_server (
shared_network_name VARCHAR(128) NOT NULL,
shared_network_id BIGINT(20) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
modification_ts TIMESTAMP NOT NULL,
PRIMARY KEY (shared_network_name, server_id),
PRIMARY KEY (shared_network_id, server_id),
KEY key_dhcp4_shared_network_server_modification_ts (modification_ts),
KEY fk_dhcp4_shared_network_server_server_id_idx (server_id),
KEY fk_dhcp4_shared_network_server_server_id (server_id),
CONSTRAINT fk_dhcp4_shared_network_server_server_id FOREIGN KEY (server_id)
REFERENCES dhcp4_server (id)
ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT fk_dhcp4_shared_network_server_shared_network_name FOREIGN KEY (shared_network_name)
REFERENCES dhcp4_shared_network (name) ON DELETE NO ACTION ON UPDATE NO ACTION
CONSTRAINT fk_dhcp4_shared_network_server_shared_network_id FOREIGN KEY (shared_network_id)
REFERENCES dhcp4_shared_network (id) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB;
# Create table dhcp4_subnet
#
CREATE TABLE IF NOT EXISTS dhcp4_subnet (
subnet_id INT(10) UNSIGNED NOT NULL,
subnet_prefix VARCHAR(32) NOT NULL,
4o6_interface VARCHAR(128) DEFAULT NULL,
4o6_interface_id VARCHAR(128) DEFAULT NULL,
Expand All @@ -268,13 +279,10 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet (
reservation_mode TINYINT(3) NOT NULL DEFAULT '3',
server_hostname VARCHAR(512) DEFAULT NULL,
shared_network_name VARCHAR(128) DEFAULT NULL,
subnet_id INT(10) UNSIGNED NOT NULL,
user_context LONGTEXT,
valid_lifetime INT(10) DEFAULT NULL,
PRIMARY KEY (subnet_id),
UNIQUE KEY subnet_id_UNIQUE (subnet_id),
UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
KEY subnet4_subnet_prefix (subnet_prefix),
UNIQUE KEY subnet4_subnet_prefix (subnet_prefix),
KEY fk_dhcp4_subnet_shared_network (shared_network_name),
KEY key_dhcp4_subnet_modification_ts (modification_ts),
CONSTRAINT fk_dhcp4_subnet_shared_network FOREIGN KEY (shared_network_name)
Expand All @@ -283,7 +291,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet (
) ENGINE=InnoDB;
# Create table dhcp4_pool
-- -----------------------------------------------------
#
CREATE TABLE IF NOT EXISTS dhcp4_pool (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
start_address INT(10) NOT NULL,
Expand All @@ -299,6 +307,8 @@ CREATE TABLE IF NOT EXISTS dhcp4_pool (
) ENGINE=InnoDB;
# Create table dhcp4_subnet_server
# M-to-M cross-reference between subnets and servers
#
CREATE TABLE IF NOT EXISTS dhcp4_subnet_server (
subnet_id INT(10) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
Expand All @@ -316,6 +326,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet_server (
# Modify the primary key to BINGINT as other tables have.
#
ALTER TABLE dhcp4_options MODIFY option_id BIGINT(20) UNSIGNED NOT NULL;
# Add conifguration backend specific columns.
Expand All @@ -325,6 +336,8 @@ ALTER TABLE dhcp4_options
ADD COLUMN modification_ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
# Create table dhcp4_options_server
# M-to-M cross-reference between options and servers
#
CREATE TABLE IF NOT EXISTS dhcp4_options_server (
option_id BIGINT(20) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
Expand All @@ -341,26 +354,26 @@ CREATE TABLE IF NOT EXISTS dhcp4_options_server (
) ENGINE=InnoDB;
# Create table dhcp6_server
#
CREATE TABLE IF NOT EXISTS dhcp6_server (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(256) NOT NULL,
description TEXT,
modification_ts TIMESTAMP NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY dhcp6_server_tag_UNIQUE (tag),
UNIQUE KEY id_UNIQUE (id),
KEY key_dhcp6_server_modification_ts (modification_ts)
) ENGINE=InnoDB;
# Create table dhcp6_audit
#
CREATE TABLE IF NOT EXISTS dhcp6_audit (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
object_type VARCHAR(256) NOT NULL,
object_id VARCHAR(128) NOT NULL,
object_id BIGINT(20) UNSIGNED NOT NULL,
modification_type TINYINT(1) NOT NULL,
modification_ts TIMESTAMP NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY id_UNIQUE (id),
KEY key_dhcp6_audit_modification_ts (modification_ts),
KEY fk_dhcp6_audit_modification_type (modification_type),
CONSTRAINT fk_dhcp6_audit_modification_type FOREIGN KEY (modification_type)
Expand All @@ -369,18 +382,20 @@ CREATE TABLE IF NOT EXISTS dhcp6_audit (
) ENGINE=InnoDB;
# Create table dhcp6_global_parameter
#
CREATE TABLE IF NOT EXISTS dhcp6_global_parameter (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(128) NOT NULL,
value LONGTEXT NOT NULL,
modification_ts timestamp NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY id_UNIQUE (id),
KEY key_dhcp6_global_parameter_modification_ts (modification_ts),
KEY key_dhcp6_global_parameter_name (name)
) ENGINE=InnoDB;
# Create table dhcp6_global_parameter_server
# M-to-M cross-reference between global parameters and servers
#
CREATE TABLE IF NOT EXISTS dhcp6_global_parameter_server (
parameter_id BIGINT(20) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
Expand All @@ -397,6 +412,7 @@ CREATE TABLE IF NOT EXISTS dhcp6_global_parameter_server (
) ENGINE=InnoDB;
# Create table dhcp6_option_def
#
CREATE TABLE IF NOT EXISTS dhcp6_option_def (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
code TINYINT(3) UNSIGNED NOT NULL,
Expand All @@ -407,12 +423,13 @@ CREATE TABLE IF NOT EXISTS dhcp6_option_def (
record_types VARCHAR(512) DEFAULT NULL,
user_context LONGTEXT,
PRIMARY KEY (id),
UNIQUE KEY id_UNIQUE (id),
KEY key_dhcp6_option_def_modification_ts (modification_ts),
KEY key_dhcp6_option_def_code_space (code, space)
) ENGINE=InnoDB;
# Create table dhcp6_option_def_server
# M-to-M cross-reference between option definitions and servers
#
CREATE TABLE IF NOT EXISTS dhcp6_option_def_server (
option_def_id BIGINT(20) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
Expand All @@ -428,7 +445,9 @@ CREATE TABLE IF NOT EXISTS dhcp6_option_def_server (
) ENGINE=InnoDB;
# Create table dhcp6_shared_network
#
CREATE TABLE dhcp6_shared_network (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(128) NOT NULL,
client_class VARCHAR(128) DEFAULT NULL,
interface VARCHAR(128) DEFAULT NULL,
Expand All @@ -443,28 +462,33 @@ CREATE TABLE dhcp6_shared_network (
server_hostname VARCHAR(512) DEFAULT NULL,
user_context LONGTEXT,
valid_lifetime INT(10) DEFAULT NULL,
PRIMARY KEY (name),
PRIMARY KEY (id),
UNIQUE KEY name_UNIQUE (name),
KEY key_dhcp6_shared_network_modification_ts (modification_ts)
) ENGINE=InnoDB;
# Create table dhcp6_shared_network_server
# M-to-M cross-reference between shared networks and servers
#
CREATE TABLE IF NOT EXISTS dhcp6_shared_network_server (
shared_network_name VARCHAR(128) NOT NULL,
shared_network_id BIGINT(20) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
modification_ts TIMESTAMP NOT NULL,
KEY key_dhcp6_shared_network_server_modification_ts (modification_ts),
KEY fk_dhcp6_shared_network_server_server_id_idx (server_id),
KEY fk_dhcp6_shared_network_server_shared_network_name (shared_network_name),
KEY fk_dhcp6_shared_network_server_shared_network_id (shared_network_id),
CONSTRAINT fk_dhcp6_shared_network_server_server_id FOREIGN KEY (server_id)
REFERENCES dhcp6_server (id)
ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT fk_dhcp6_shared_network_server_shared_network_name FOREIGN KEY (shared_network_name)
REFERENCES dhcp6_shared_network (name)
CONSTRAINT fk_dhcp6_shared_network_server_shared_network_id FOREIGN KEY (shared_network_id)
REFERENCES dhcp6_shared_network (id)
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB;
# Create table dhcp6_subnet
#
CREATE TABLE dhcp6_subnet (
subnet_id int(10) UNSIGNED NOT NULL,
subnet_prefix VARCHAR(64) NOT NULL,
client_class VARCHAR(128) DEFAULT NULL,
interface VARCHAR(128) DEFAULT NULL,
Expand All @@ -477,13 +501,10 @@ CREATE TABLE dhcp6_subnet (
require_client_classes LONGTEXT,
reservation_mode TINYINT(3) NOT NULL DEFAULT '3',
shared_network_name VARCHAR(128) DEFAULT NULL,
subnet_id int(10) UNSIGNED NOT NULL,
user_context LONGTEXT,
valid_lifetime INT(10) DEFAULT NULL,
PRIMARY KEY (subnet_id),
UNIQUE KEY subnet_id_UNIQUE (subnet_id),
UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
KEY subnet6_subnet_prefix (subnet_prefix),
UNIQUE KEY subnet6_subnet_prefix (subnet_prefix),
KEY fk_dhcp6_subnet_shared_network (shared_network_name),
KEY key_dhcp6_subnet_modification_ts (modification_ts),
CONSTRAINT fk_dhcp6_subnet_shared_network FOREIGN KEY (shared_network_name)
Expand All @@ -492,6 +513,8 @@ CREATE TABLE dhcp6_subnet (
) ENGINE=InnoDB;
# Create table dhcp6_subnet_server
# M-to-M cross-reference between subnets and servers
#
CREATE TABLE dhcp6_subnet_server (
subnet_id INT(10) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
Expand All @@ -508,6 +531,7 @@ CREATE TABLE dhcp6_subnet_server (
) ENGINE=InnoDB;
# Create table dhcp6_pd_pool
#
CREATE TABLE IF NOT EXISTS dhcp6_pd_pool (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
prefix VARCHAR(45) NOT NULL,
Expand All @@ -523,6 +547,7 @@ CREATE TABLE IF NOT EXISTS dhcp6_pd_pool (
) ENGINE=InnoDB;
# Create table dhcp6_pool
#
CREATE TABLE IF NOT EXISTS dhcp6_pool (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
start_address VARCHAR(45) NOT NULL,
Expand All @@ -547,6 +572,8 @@ ALTER TABLE dhcp6_options
ADD COLUMN modification_ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
# Create table dhcp6_options_server
# M-to-M cross-reference between options and servers
#
CREATE TABLE IF NOT EXISTS dhcp6_options_server (
option_id BIGINT(20) UNSIGNED NOT NULL,
server_id BIGINT(20) UNSIGNED NOT NULL,
Expand Down

0 comments on commit 4c4a676

Please sign in to comment.