CREATE TABLE lease6_types (
lease_type TINYINT PRIMARY KEY NOT NULL, # Lease type code.
name VARCHAR(5) # Name of the lease type
- );
+ ) ENGINE = INNODB;
+
START TRANSACTION;
INSERT INTO lease6_types VALUES (0, "IA_NA"); # Non-temporary v6 addresses
INSERT INTO lease6_types VALUES (1, "IA_TA"); # Temporary v6 addresses
CREATE TABLE schema_version (
version INT PRIMARY KEY NOT NULL, # Major version number
minor INT # Minor version number
- );
+ ) ENGINE = INNODB;
START TRANSACTION;
INSERT INTO schema_version VALUES (1, 0);
COMMIT;
CREATE TABLE lease_hwaddr_source (
hwaddr_source INT PRIMARY KEY NOT NULL,
name VARCHAR(40)
-);
+) ENGINE = INNODB;
# Hardware address obtained from raw sockets
INSERT INTO lease_hwaddr_source VALUES (1, "HWADDR_SOURCE_RAW");
CREATE TABLE lease_hwaddr_source (
hwaddr_source INT PRIMARY KEY NOT NULL,
name VARCHAR(40)
-);
+) ENGINE = INNODB;
-- See src/lib/dhcp/dhcp/pkt.h for detailed explanation
INSERT INTO lease_hwaddr_source VALUES (1, "HWADDR_SOURCE_RAW");
dhcp6_client_classes VARCHAR(255) NULL ,
PRIMARY KEY (host_id) ,
INDEX key_dhcp4_identifier_subnet_id (dhcp_identifier ASC, dhcp_identifier_type ASC) ,
-INDEX key_dhcp6_identifier_subnet_id (dhcp_identifier ASC, dhcp_identifier_type ASC, dhcp6_subnet_id ASC) );
+INDEX key_dhcp6_identifier_subnet_id (dhcp_identifier ASC, dhcp_identifier_type ASC, dhcp6_subnet_id ASC)
+) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS ipv6_reservations (
reservation_id INT NOT NULL AUTO_INCREMENT ,
FOREIGN KEY (host_id )
REFERENCES hosts (host_id )
ON DELETE NO ACTION
-ON UPDATE NO ACTION);
+ON UPDATE NO ACTION
+) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS dhcp4_options (
option_id INT UNSIGNED NOT NULL AUTO_INCREMENT ,
FOREIGN KEY (host_id )
REFERENCES hosts (host_id )
ON DELETE NO ACTION
-ON UPDATE NO ACTION);
+ON UPDATE NO ACTION
+) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS dhcp6_options (
option_id INT UNSIGNED NOT NULL AUTO_INCREMENT ,
FOREIGN KEY (host_id )
REFERENCES hosts (host_id )
ON DELETE NO ACTION
-ON UPDATE NO ACTION);
+ON UPDATE NO ACTION
+) ENGINE = INNODB;
DELIMITER $$
CREATE TRIGGER host_BDEL BEFORE DELETE ON hosts FOR EACH ROW
address,duid,valid_lifetime,expire,subnet_id,pref_lifetime,lease_type,iaid,prefix_len,fqdn_fwd,fqdn_rev,hostname,hwaddr,hwtype,hwaddr_source,state
+10,3230,30,2015-04-04 01:15:30,40,50,IA_TA,60,70,1,1,one.example.com,3830,90,HWADDR_SOURCE_REMOTE_ID,default
11,,30,2015-05-05 02:30:45,40,50,IA_TA,60,70,1,1,,3830,90,HWADDR_SOURCE_RAW,declined
12,3231,30,2015-06-06 11:01:07,40,50,IA_TA,60,70,1,1,three.example.com,3830,90,HWADDR_SOURCE_DUID,expired-reclaimed
-10,3230,30,2015-04-04 01:15:30,40,50,IA_TA,60,70,1,1,one.example.com,3830,90,HWADDR_SOURCE_REMOTE_ID,default
CREATE TABLE lease6_types (
lease_type TINYINT PRIMARY KEY NOT NULL, # Lease type code.
name VARCHAR(5) # Name of the lease type
- );
+ ) ENGINE = INNODB;
START TRANSACTION;
INSERT INTO lease6_types VALUES (0, "IA_NA"); # Non-temporary v6 addresses
INSERT INTO lease6_types VALUES (1, "IA_TA"); # Temporary v6 addresses
CREATE TABLE schema_version (
version INT PRIMARY KEY NOT NULL, # Major version number
minor INT # Minor version number
- );
+ ) ENGINE = INNODB;
START TRANSACTION;
INSERT INTO schema_version VALUES (1, 0);
COMMIT;
mysql_wipe() {
printf "Wiping whole database %s\n" $db_name
- # ipv6_reservations table must be deleted first, as it has contraints that
- # are dependent on hosts. Therefore hosts table cannot be deleted before
- # ipv6_reservations.
- mysql_execute "DROP TABLE IF EXISTS ipv6_reservations;"
-
# First we build the list of drop table commands
# We don't bother with "cascade" because as of MySQL
# 5.1 it is only there to ease porting, it doesn't
// Execute creation statements.
for (int i = 0; create_statement[i] != NULL; ++i) {
ASSERT_EQ(0, mysql_query(mysql, create_statement[i]))
- << "Failed on statement " << i << ": " << create_statement[i];
+ << "Failed on statement " << i << ": " << create_statement[i]
+ << " error: " << mysql_error(mysql) << " (error code "
+ << mysql_errno(mysql) << ")";
}
}
// Deletion of existing tables.
const char* destroy_statement[] = {
+ // Turning off referential integrity checks ensures tables get dropped
+ "SET SESSION FOREIGN_KEY_CHECKS = 0",
"DROP TABLE lease4",
"DROP TABLE lease6",
"DROP TABLE lease6_types",
"DROP TABLE lease_hwaddr_source",
"DROP TABLE schema_version",
-
- // We need to drop ipv6_reservations before hosts, as it has constrains
- // that depend on hosts. Therefore hosts table cannot be deleted while
- // ipv6_reservations exists.
"DROP TABLE ipv6_reservations",
"DROP TABLE hosts",
"DROP TABLE dhcp4_options",
"CREATE TABLE lease6_types ("
"lease_type TINYINT PRIMARY KEY NOT NULL,"
"name VARCHAR(5)"
- ")",
+ ") ENGINE = INNODB",
"INSERT INTO lease6_types VALUES (0, \"IA_NA\")",
"INSERT INTO lease6_types VALUES (1, \"IA_TA\")",
"CREATE TABLE schema_version ("
"version INT PRIMARY KEY NOT NULL,"
"minor INT"
- ")",
+ ") ENGINE = INNODB",
"INSERT INTO schema_version VALUES (1, 0)",
"COMMIT",