Skip to content

Commit 4c4a676

Browse files
committed
[#89,!22] Modified MySQL 6->7 upgrade script according to review.
1 parent 5770699 commit 4c4a676

File tree

2 files changed

+59
-33
lines changed

2 files changed

+59
-33
lines changed

src/share/database/scripts/mysql/dhcpdb_create.mysql

+2-3
Original file line numberDiff line numberDiff line change
@@ -953,8 +953,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet (
953953
user_context LONGTEXT,
954954
valid_lifetime INT(10) DEFAULT NULL,
955955
PRIMARY KEY (subnet_id),
956-
UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
957-
KEY subnet4_subnet_prefix (subnet_prefix),
956+
UNIQUE KEY subnet4_subnet_prefix (subnet_prefix),
958957
KEY fk_dhcp4_subnet_shared_network (shared_network_name),
959958
KEY key_dhcp4_subnet_modification_ts (modification_ts),
960959
CONSTRAINT fk_dhcp4_subnet_shared_network FOREIGN KEY (shared_network_name)
@@ -1190,7 +1189,7 @@ CREATE TABLE dhcp6_subnet (
11901189
user_context LONGTEXT,
11911190
valid_lifetime INT(10) DEFAULT NULL,
11921191
PRIMARY KEY (subnet_id),
1193-
UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
1192+
UNIQUE KEY subnet_prefix_UNIQUE (subnet_prefix),
11941193
KEY subnet6_subnet_prefix (subnet_prefix),
11951194
KEY fk_dhcp6_subnet_shared_network (shared_network_name),
11961195
KEY key_dhcp6_subnet_modification_ts (modification_ts),

src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh.in

+57-30
Original file line numberDiff line numberDiff line change
@@ -129,26 +129,26 @@ INSERT INTO modification(id, modification_type)
129129
VALUES(2, "delete");
130130
131131
# Create table dhcp4_server
132+
#
132133
CREATE TABLE IF NOT EXISTS dhcp4_server (
133134
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
134135
tag VARCHAR(256) NOT NULL,
135136
description TEXT,
136137
modification_ts TIMESTAMP NOT NULL,
137138
PRIMARY KEY (id),
138139
UNIQUE KEY dhcp4_server_tag_UNIQUE (tag),
139-
UNIQUE KEY id_UNIQUE (id),
140140
KEY key_dhcp4_server_modification_ts (modification_ts)
141141
) ENGINE=InnoDB;
142142
143143
# Create table dhcp4_audit
144+
#
144145
CREATE TABLE IF NOT EXISTS dhcp4_audit (
145146
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
146147
object_type VARCHAR(256) NOT NULL,
147-
object_id VARCHAR(128) NOT NULL,
148+
object_id BIGINT(2) UNSIGNED NOT NULL,
148149
modification_type TINYINT(1) NOT NULL,
149150
modification_ts TIMESTAMP NOT NULL,
150151
PRIMARY KEY (id),
151-
UNIQUE KEY id_UNIQUE (id),
152152
KEY key_dhcp4_audit_by_modification_ts (modification_ts),
153153
KEY fk_dhcp4_audit_modification_type (modification_type),
154154
CONSTRAINT fk_dhcp4_audit_modification_type FOREIGN KEY (modification_type)
@@ -157,18 +157,20 @@ CREATE TABLE IF NOT EXISTS dhcp4_audit (
157157
) ENGINE=InnoDB;
158158
159159
# Create table dhcp4_global_parameter
160+
#
160161
CREATE TABLE IF NOT EXISTS dhcp4_global_parameter (
161162
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
162163
name VARCHAR(128) NOT NULL,
163164
value LONGTEXT NOT NULL,
164165
modification_ts timestamp NOT NULL,
165166
PRIMARY KEY (id),
166-
UNIQUE KEY id_UNIQUE (id),
167167
KEY key_dhcp4_global_parameter_modification_ts (modification_ts),
168168
KEY key_dhcp4_global_parameter_name (name)
169169
) ENGINE=InnoDB;
170170
171171
# Create table dhcp4_global_parameter_server
172+
# M-to-M cross-reference between global parameters and servers
173+
#
172174
CREATE TABLE IF NOT EXISTS dhcp4_global_parameter_server (
173175
parameter_id BIGINT(20) UNSIGNED NOT NULL,
174176
server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -185,6 +187,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_global_parameter_server (
185187
) ENGINE=InnoDB;
186188
187189
# Create table dhcp4_option_def
190+
#
188191
CREATE TABLE IF NOT EXISTS dhcp4_option_def (
189192
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
190193
code TINYINT(3) UNSIGNED NOT NULL,
@@ -195,12 +198,13 @@ CREATE TABLE IF NOT EXISTS dhcp4_option_def (
195198
record_types VARCHAR(512) DEFAULT NULL,
196199
user_context LONGTEXT,
197200
PRIMARY KEY (id),
198-
UNIQUE KEY id_UNIQUE (id),
199201
KEY key_dhcp4_option_def_modification_ts (modification_ts),
200202
KEY key_dhcp4_option_def_code_space (code, space)
201203
) ENGINE=InnoDB;
202204
203205
# Create table dhcp4_option_def_server
206+
# M-to-M cross-reference between option definitions and servers
207+
#
204208
CREATE TABLE IF NOT EXISTS dhcp4_option_def_server (
205209
option_def_id BIGINT(20) UNSIGNED NOT NULL,
206210
server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -216,7 +220,9 @@ CREATE TABLE IF NOT EXISTS dhcp4_option_def_server (
216220
) ENGINE=InnoDB;
217221
218222
# Create table dhcp4_shared_network
223+
#
219224
CREATE TABLE IF NOT EXISTS dhcp4_shared_network (
225+
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
220226
name VARCHAR(128) NOT NULL,
221227
client_class VARCHAR(128) DEFAULT NULL,
222228
interface VARCHAR(128) DEFAULT NULL,
@@ -230,27 +236,32 @@ CREATE TABLE IF NOT EXISTS dhcp4_shared_network (
230236
server_hostname VARCHAR(512) DEFAULT NULL,
231237
user_context LONGTEXT,
232238
valid_lifetime INT(10) DEFAULT NULL,
233-
PRIMARY KEY (name),
239+
PRIMARY KEY (id),
240+
UNIQUE KEY name_UNIQUE (name),
234241
KEY key_dhcp4_shared_network_modification_ts (modification_ts)
235242
) ENGINE=InnoDB;
236243
237244
# Create table dhcp4_shared_network_server
245+
# M-to-M cross-reference between shared networks and servers
246+
#
238247
CREATE TABLE IF NOT EXISTS dhcp4_shared_network_server (
239-
shared_network_name VARCHAR(128) NOT NULL,
248+
shared_network_id BIGINT(20) UNSIGNED NOT NULL,
240249
server_id BIGINT(20) UNSIGNED NOT NULL,
241250
modification_ts TIMESTAMP NOT NULL,
242-
PRIMARY KEY (shared_network_name, server_id),
251+
PRIMARY KEY (shared_network_id, server_id),
243252
KEY key_dhcp4_shared_network_server_modification_ts (modification_ts),
244-
KEY fk_dhcp4_shared_network_server_server_id_idx (server_id),
253+
KEY fk_dhcp4_shared_network_server_server_id (server_id),
245254
CONSTRAINT fk_dhcp4_shared_network_server_server_id FOREIGN KEY (server_id)
246255
REFERENCES dhcp4_server (id)
247256
ON DELETE NO ACTION ON UPDATE NO ACTION,
248-
CONSTRAINT fk_dhcp4_shared_network_server_shared_network_name FOREIGN KEY (shared_network_name)
249-
REFERENCES dhcp4_shared_network (name) ON DELETE NO ACTION ON UPDATE NO ACTION
257+
CONSTRAINT fk_dhcp4_shared_network_server_shared_network_id FOREIGN KEY (shared_network_id)
258+
REFERENCES dhcp4_shared_network (id) ON DELETE NO ACTION ON UPDATE NO ACTION
250259
) ENGINE=InnoDB;
251260
252261
# Create table dhcp4_subnet
262+
#
253263
CREATE TABLE IF NOT EXISTS dhcp4_subnet (
264+
subnet_id INT(10) UNSIGNED NOT NULL,
254265
subnet_prefix VARCHAR(32) NOT NULL,
255266
4o6_interface VARCHAR(128) DEFAULT NULL,
256267
4o6_interface_id VARCHAR(128) DEFAULT NULL,
@@ -268,13 +279,10 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet (
268279
reservation_mode TINYINT(3) NOT NULL DEFAULT '3',
269280
server_hostname VARCHAR(512) DEFAULT NULL,
270281
shared_network_name VARCHAR(128) DEFAULT NULL,
271-
subnet_id INT(10) UNSIGNED NOT NULL,
272282
user_context LONGTEXT,
273283
valid_lifetime INT(10) DEFAULT NULL,
274284
PRIMARY KEY (subnet_id),
275-
UNIQUE KEY subnet_id_UNIQUE (subnet_id),
276-
UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
277-
KEY subnet4_subnet_prefix (subnet_prefix),
285+
UNIQUE KEY subnet4_subnet_prefix (subnet_prefix),
278286
KEY fk_dhcp4_subnet_shared_network (shared_network_name),
279287
KEY key_dhcp4_subnet_modification_ts (modification_ts),
280288
CONSTRAINT fk_dhcp4_subnet_shared_network FOREIGN KEY (shared_network_name)
@@ -283,7 +291,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet (
283291
) ENGINE=InnoDB;
284292
285293
# Create table dhcp4_pool
286-
-- -----------------------------------------------------
294+
#
287295
CREATE TABLE IF NOT EXISTS dhcp4_pool (
288296
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
289297
start_address INT(10) NOT NULL,
@@ -299,6 +307,8 @@ CREATE TABLE IF NOT EXISTS dhcp4_pool (
299307
) ENGINE=InnoDB;
300308
301309
# Create table dhcp4_subnet_server
310+
# M-to-M cross-reference between subnets and servers
311+
#
302312
CREATE TABLE IF NOT EXISTS dhcp4_subnet_server (
303313
subnet_id INT(10) UNSIGNED NOT NULL,
304314
server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -316,6 +326,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet_server (
316326
317327
318328
# Modify the primary key to BINGINT as other tables have.
329+
#
319330
ALTER TABLE dhcp4_options MODIFY option_id BIGINT(20) UNSIGNED NOT NULL;
320331
321332
# Add conifguration backend specific columns.
@@ -325,6 +336,8 @@ ALTER TABLE dhcp4_options
325336
ADD COLUMN modification_ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
326337
327338
# Create table dhcp4_options_server
339+
# M-to-M cross-reference between options and servers
340+
#
328341
CREATE TABLE IF NOT EXISTS dhcp4_options_server (
329342
option_id BIGINT(20) UNSIGNED NOT NULL,
330343
server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -341,26 +354,26 @@ CREATE TABLE IF NOT EXISTS dhcp4_options_server (
341354
) ENGINE=InnoDB;
342355
343356
# Create table dhcp6_server
357+
#
344358
CREATE TABLE IF NOT EXISTS dhcp6_server (
345359
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
346360
tag VARCHAR(256) NOT NULL,
347361
description TEXT,
348362
modification_ts TIMESTAMP NOT NULL,
349363
PRIMARY KEY (id),
350364
UNIQUE KEY dhcp6_server_tag_UNIQUE (tag),
351-
UNIQUE KEY id_UNIQUE (id),
352365
KEY key_dhcp6_server_modification_ts (modification_ts)
353366
) ENGINE=InnoDB;
354367
355368
# Create table dhcp6_audit
369+
#
356370
CREATE TABLE IF NOT EXISTS dhcp6_audit (
357371
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
358372
object_type VARCHAR(256) NOT NULL,
359-
object_id VARCHAR(128) NOT NULL,
373+
object_id BIGINT(20) UNSIGNED NOT NULL,
360374
modification_type TINYINT(1) NOT NULL,
361375
modification_ts TIMESTAMP NOT NULL,
362376
PRIMARY KEY (id),
363-
UNIQUE KEY id_UNIQUE (id),
364377
KEY key_dhcp6_audit_modification_ts (modification_ts),
365378
KEY fk_dhcp6_audit_modification_type (modification_type),
366379
CONSTRAINT fk_dhcp6_audit_modification_type FOREIGN KEY (modification_type)
@@ -369,18 +382,20 @@ CREATE TABLE IF NOT EXISTS dhcp6_audit (
369382
) ENGINE=InnoDB;
370383
371384
# Create table dhcp6_global_parameter
385+
#
372386
CREATE TABLE IF NOT EXISTS dhcp6_global_parameter (
373387
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
374388
name VARCHAR(128) NOT NULL,
375389
value LONGTEXT NOT NULL,
376390
modification_ts timestamp NOT NULL,
377391
PRIMARY KEY (id),
378-
UNIQUE KEY id_UNIQUE (id),
379392
KEY key_dhcp6_global_parameter_modification_ts (modification_ts),
380393
KEY key_dhcp6_global_parameter_name (name)
381394
) ENGINE=InnoDB;
382395
383396
# Create table dhcp6_global_parameter_server
397+
# M-to-M cross-reference between global parameters and servers
398+
#
384399
CREATE TABLE IF NOT EXISTS dhcp6_global_parameter_server (
385400
parameter_id BIGINT(20) UNSIGNED NOT NULL,
386401
server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -397,6 +412,7 @@ CREATE TABLE IF NOT EXISTS dhcp6_global_parameter_server (
397412
) ENGINE=InnoDB;
398413
399414
# Create table dhcp6_option_def
415+
#
400416
CREATE TABLE IF NOT EXISTS dhcp6_option_def (
401417
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
402418
code TINYINT(3) UNSIGNED NOT NULL,
@@ -407,12 +423,13 @@ CREATE TABLE IF NOT EXISTS dhcp6_option_def (
407423
record_types VARCHAR(512) DEFAULT NULL,
408424
user_context LONGTEXT,
409425
PRIMARY KEY (id),
410-
UNIQUE KEY id_UNIQUE (id),
411426
KEY key_dhcp6_option_def_modification_ts (modification_ts),
412427
KEY key_dhcp6_option_def_code_space (code, space)
413428
) ENGINE=InnoDB;
414429
415430
# Create table dhcp6_option_def_server
431+
# M-to-M cross-reference between option definitions and servers
432+
#
416433
CREATE TABLE IF NOT EXISTS dhcp6_option_def_server (
417434
option_def_id BIGINT(20) UNSIGNED NOT NULL,
418435
server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -428,7 +445,9 @@ CREATE TABLE IF NOT EXISTS dhcp6_option_def_server (
428445
) ENGINE=InnoDB;
429446
430447
# Create table dhcp6_shared_network
448+
#
431449
CREATE TABLE dhcp6_shared_network (
450+
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
432451
name VARCHAR(128) NOT NULL,
433452
client_class VARCHAR(128) DEFAULT NULL,
434453
interface VARCHAR(128) DEFAULT NULL,
@@ -443,28 +462,33 @@ CREATE TABLE dhcp6_shared_network (
443462
server_hostname VARCHAR(512) DEFAULT NULL,
444463
user_context LONGTEXT,
445464
valid_lifetime INT(10) DEFAULT NULL,
446-
PRIMARY KEY (name),
465+
PRIMARY KEY (id),
466+
UNIQUE KEY name_UNIQUE (name),
447467
KEY key_dhcp6_shared_network_modification_ts (modification_ts)
448468
) ENGINE=InnoDB;
449469
450470
# Create table dhcp6_shared_network_server
471+
# M-to-M cross-reference between shared networks and servers
472+
#
451473
CREATE TABLE IF NOT EXISTS dhcp6_shared_network_server (
452-
shared_network_name VARCHAR(128) NOT NULL,
474+
shared_network_id BIGINT(20) UNSIGNED NOT NULL,
453475
server_id BIGINT(20) UNSIGNED NOT NULL,
454476
modification_ts TIMESTAMP NOT NULL,
455477
KEY key_dhcp6_shared_network_server_modification_ts (modification_ts),
456478
KEY fk_dhcp6_shared_network_server_server_id_idx (server_id),
457-
KEY fk_dhcp6_shared_network_server_shared_network_name (shared_network_name),
479+
KEY fk_dhcp6_shared_network_server_shared_network_id (shared_network_id),
458480
CONSTRAINT fk_dhcp6_shared_network_server_server_id FOREIGN KEY (server_id)
459481
REFERENCES dhcp6_server (id)
460482
ON DELETE NO ACTION ON UPDATE NO ACTION,
461-
CONSTRAINT fk_dhcp6_shared_network_server_shared_network_name FOREIGN KEY (shared_network_name)
462-
REFERENCES dhcp6_shared_network (name)
483+
CONSTRAINT fk_dhcp6_shared_network_server_shared_network_id FOREIGN KEY (shared_network_id)
484+
REFERENCES dhcp6_shared_network (id)
463485
ON DELETE NO ACTION ON UPDATE NO ACTION
464486
) ENGINE=InnoDB;
465487
466488
# Create table dhcp6_subnet
489+
#
467490
CREATE TABLE dhcp6_subnet (
491+
subnet_id int(10) UNSIGNED NOT NULL,
468492
subnet_prefix VARCHAR(64) NOT NULL,
469493
client_class VARCHAR(128) DEFAULT NULL,
470494
interface VARCHAR(128) DEFAULT NULL,
@@ -477,13 +501,10 @@ CREATE TABLE dhcp6_subnet (
477501
require_client_classes LONGTEXT,
478502
reservation_mode TINYINT(3) NOT NULL DEFAULT '3',
479503
shared_network_name VARCHAR(128) DEFAULT NULL,
480-
subnet_id int(10) UNSIGNED NOT NULL,
481504
user_context LONGTEXT,
482505
valid_lifetime INT(10) DEFAULT NULL,
483506
PRIMARY KEY (subnet_id),
484-
UNIQUE KEY subnet_id_UNIQUE (subnet_id),
485-
UNIQUE KEY subnet_prefix_UNIQUE (subnet_id),
486-
KEY subnet6_subnet_prefix (subnet_prefix),
507+
UNIQUE KEY subnet6_subnet_prefix (subnet_prefix),
487508
KEY fk_dhcp6_subnet_shared_network (shared_network_name),
488509
KEY key_dhcp6_subnet_modification_ts (modification_ts),
489510
CONSTRAINT fk_dhcp6_subnet_shared_network FOREIGN KEY (shared_network_name)
@@ -492,6 +513,8 @@ CREATE TABLE dhcp6_subnet (
492513
) ENGINE=InnoDB;
493514
494515
# Create table dhcp6_subnet_server
516+
# M-to-M cross-reference between subnets and servers
517+
#
495518
CREATE TABLE dhcp6_subnet_server (
496519
subnet_id INT(10) UNSIGNED NOT NULL,
497520
server_id BIGINT(20) UNSIGNED NOT NULL,
@@ -508,6 +531,7 @@ CREATE TABLE dhcp6_subnet_server (
508531
) ENGINE=InnoDB;
509532
510533
# Create table dhcp6_pd_pool
534+
#
511535
CREATE TABLE IF NOT EXISTS dhcp6_pd_pool (
512536
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
513537
prefix VARCHAR(45) NOT NULL,
@@ -523,6 +547,7 @@ CREATE TABLE IF NOT EXISTS dhcp6_pd_pool (
523547
) ENGINE=InnoDB;
524548
525549
# Create table dhcp6_pool
550+
#
526551
CREATE TABLE IF NOT EXISTS dhcp6_pool (
527552
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
528553
start_address VARCHAR(45) NOT NULL,
@@ -547,6 +572,8 @@ ALTER TABLE dhcp6_options
547572
ADD COLUMN modification_ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
548573
549574
# Create table dhcp6_options_server
575+
# M-to-M cross-reference between options and servers
576+
#
550577
CREATE TABLE IF NOT EXISTS dhcp6_options_server (
551578
option_id BIGINT(20) UNSIGNED NOT NULL,
552579
server_id BIGINT(20) UNSIGNED NOT NULL,

0 commit comments

Comments
 (0)