From: Tomek Mrugalski Date: Thu, 16 Apr 2015 12:59:26 +0000 (+0200) Subject: [3567] MySQL schema updated to 3.0 X-Git-Tag: trac3513_base~3^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e9fc3ede80d833c0b186c1ec4cb4a32a8ebb46ed;p=thirdparty%2Fkea.git [3567] MySQL schema updated to 3.0 - Applied patch as submitted by Adam Kalmus --- diff --git a/src/bin/admin/scripts/mysql/dhcpdb_create.mysql b/src/bin/admin/scripts/mysql/dhcpdb_create.mysql index 4ab7dab096..ad9164f651 100644 --- a/src/bin/admin/scripts/mysql/dhcpdb_create.mysql +++ b/src/bin/admin/scripts/mysql/dhcpdb_create.mysql @@ -163,6 +163,126 @@ UPDATE schema_version SET version="2", minor="0"; # This line concludes database upgrade to version 2.0. +# This line starts database upgrade to version 3.0. +# Upgrade extending MySQL schema with the ability to store hosts. + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; + +CREATE SCHEMA IF NOT EXISTS `kea_host_reservation` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; +USE `kea_host_reservation` ; + +-- ----------------------------------------------------- +-- Table `kea_host_reservation`.`hosts` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `kea_host_reservation`.`hosts` ( + `host_id` INT UNSIGNED NOT NULL AUTO_INCREMENT , + `dhcp_identifier` VARBINARY(128) NOT NULL , + `dhcp_identifier_type` TINYINT NOT NULL , + `dhcp4_subnet_id` INT UNSIGNED NULL , + `dhcp6_subnet_id` INT UNSIGNED NULL , + `ipv4_address` INT UNSIGNED NULL , + `hostname` VARCHAR(255) NULL , + `dhcp4_cllient_classes` VARCHAR(255) NULL , + `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) ) +ENGINE = InnoDB; + +-- ----------------------------------------------------- +-- Table `kea_host_reservation`.`ipv6_reservations` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `kea_host_reservation`.`ipv6_reservations` ( + `reservation_id` INT NOT NULL AUTO_INCREMENT , + `address` VARCHAR(39) NOT NULL , + `prefix_len` TINYINT(3) UNSIGNED NOT NULL DEFAULT 128 , + `type` TINYINT(4) UNSIGNED NOT NULL DEFAULT 0 , + `dhcp6_iaid` INT UNSIGNED NULL , + `host_id` INT UNSIGNED NOT NULL , + PRIMARY KEY (`reservation_id`) , + INDEX `fk_ipv6_reservations_host_idx` (`host_id` ASC) , + CONSTRAINT `fk_ipv6_reservations_Host` + FOREIGN KEY (`host_id` ) + REFERENCES `kea_host_reservation`.`hosts` (`host_id` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `kea_host_reservation`.`dhcp4_options` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `kea_host_reservation`.`dhcp4_options` ( + `option_id` INT UNSIGNED NOT NULL AUTO_INCREMENT , + `code` TINYINT UNSIGNED NOT NULL , + `value` BLOB NULL , + `formatted_value` TEXT NULL , + `space` VARCHAR(128) NULL , + `persistent` TINYINT(1) NOT NULL DEFAULT 0 , + `dhcp_client_class` VARCHAR(128) NULL , + `dhcp4_subnet_id` INT NULL , + `host_id` INT UNSIGNED NULL , + PRIMARY KEY (`option_id`) , + UNIQUE INDEX `option_id_UNIQUE` (`option_id` ASC) , + INDEX `fk_options_host1_idx` (`host_id` ASC) , + CONSTRAINT `fk_options_host1` + FOREIGN KEY (`host_id` ) + REFERENCES `kea_host_reservation`.`hosts` (`host_id` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `kea_host_reservation`.`dhcp6_options` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `kea_host_reservation`.`dhcp6_options` ( + `option_id` INT UNSIGNED NOT NULL AUTO_INCREMENT , + `code` INT UNSIGNED NOT NULL , + `value` BLOB NULL , + `formatted_value` TEXT NULL , + `space` VARCHAR(128) NULL , + `persistent` TINYINT(1) NOT NULL DEFAULT 0 , + `dhcp_client_class` VARCHAR(128) NULL , + `dhcp6_subnet_id` INT NULL , + `host_id` INT UNSIGNED NULL , + PRIMARY KEY (`option_id`) , + UNIQUE INDEX `option_id_UNIQUE` (`option_id` ASC) , + INDEX `fk_options_host1_idx` (`host_id` ASC) , + CONSTRAINT `fk_options_host10` + FOREIGN KEY (`host_id` ) + REFERENCES `kea_host_reservation`.`hosts` (`host_id` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB; + +USE `kea_host_reservation` ; +USE `kea_host_reservation`; + +DELIMITER $$ +USE `kea_host_reservation`$$ + + +CREATE TRIGGER `host_BDEL` BEFORE DELETE ON hosts FOR EACH ROW +-- Edit trigger body code below this line. Do not edit lines above this one +BEGIN +DELETE FROM `ipv6_reservations` WHERE `ipv6_reservations`.host_id = OLD.host_id; +END +$$ + + +DELIMITER ; + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; + + +# This line concludes database upgrade to version 3.0. + # Notes: # # Indexes