@@ -129,26 +129,26 @@ INSERT INTO modification(id, modification_type)
129129 VALUES(2, "delete");
130130
131131# Create table dhcp4_server
132+ #
132133CREATE 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+ #
144145CREATE 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+ #
160161CREATE 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+ #
172174CREATE 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+ #
188191CREATE 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+ #
204208CREATE 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+ #
219224CREATE 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+ #
238247CREATE 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+ #
253263CREATE 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+ #
287295CREATE 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+ #
302312CREATE 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+ #
319330ALTER 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+ #
328341CREATE 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+ #
344358CREATE 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+ #
356370CREATE 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+ #
372386CREATE 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+ #
384399CREATE 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+ #
400416CREATE 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+ #
416433CREATE 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+ #
431449CREATE 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+ #
451473CREATE 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+ #
467490CREATE 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+ #
495518CREATE 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+ #
511535CREATE 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+ #
526551CREATE 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+ #
550577CREATE 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