SQLSchema: MySQL Schema update

This commit is contained in:
Alexander Fuhr 2015-07-02 15:47:43 +02:00
parent 25f29b3acc
commit 2e78e18d39
2 changed files with 78 additions and 32 deletions

View File

@ -0,0 +1,51 @@
DROP TABLE director_datatype;
CREATE TABLE director_datafield (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
varname VARCHAR(64) NOT NULL,
caption VARCHAR(255) NOT NULL,
description TEXT DEFAULT NULL,
datatype varchar(255) NOT NULL,
-- datatype_param? multiple ones?
format enum ('string', 'json', 'expression'),
PRIMARY KEY (id),
KEY search_idx (varname)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE icinga_host_field;
CREATE TABLE icinga_host_field (
host_id INT(10) UNSIGNED NOT NULL COMMENT 'Makes only sense for templates',
datafield_id INT(10) UNSIGNED NOT NULL,
is_required ENUM('y', 'n') DEFAULT NULL,
PRIMARY KEY (host_id, datafield_id),
CONSTRAINT icinga_host_field_host
FOREIGN KEY host(host_id)
REFERENCES icinga_host (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT icinga_host_field_datafield
FOREIGN KEY datafield(datafield_id)
REFERENCES director_datafield (id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE icinga_service_field;
CREATE TABLE icinga_service_field (
service_id INT(10) UNSIGNED NOT NULL COMMENT 'Makes only sense for templates',
datafield_id INT(10) UNSIGNED NOT NULL,
is_required ENUM('y', 'n') DEFAULT NULL,
PRIMARY KEY (service_id, datafield_id),
CONSTRAINT icinga_service_field_service
FOREIGN KEY service(service_id)
REFERENCES icinga_service (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT icinga_service_field_datafield
FOREIGN KEY datafield(datafield_id)
REFERENCES director_datafield (id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

View File

@ -113,12 +113,16 @@ CREATE TABLE director_datalist_entry (
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE director_datatype (
id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
datatype_name VARCHAR(255) NOT NULL,
datatype_class VARCHAR(255) NOT NULL,
CREATE TABLE director_datafield (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
varname VARCHAR(64) NOT NULL,
caption VARCHAR(255) NOT NULL,
description TEXT DEFAULT NULL,
datatype varchar(255) NOT NULL,
-- datatype_param? multiple ones?
format enum ('string', 'json', 'expression'),
PRIMARY KEY (id),
UNIQUE KEY datatype_name (datatype_name)
KEY search_idx (varname)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE icinga_zone (
@ -389,23 +393,18 @@ CREATE TABLE icinga_host_inheritance (
CREATE TABLE icinga_host_field (
host_id INT(10) UNSIGNED NOT NULL COMMENT 'Makes only sense for templates',
fieldname VARCHAR(64) NOT NULL,
caption VARCHAR(255) NOT NULL,
datatype_id INT(10) UNSIGNED NOT NULL,
-- datatype_param? multiple ones?
default_value TEXT DEFAULT NULL,
format enum ('string', 'json', 'expression'),
PRIMARY KEY (host_id, fieldname),
KEY search_idx (fieldname),
datafield_id INT(10) UNSIGNED NOT NULL,
is_required ENUM('y', 'n') DEFAULT NULL,
PRIMARY KEY (host_id, datafield_id),
CONSTRAINT icinga_host_field_host
FOREIGN KEY host(host_id)
REFERENCES icinga_host (id)
REFERENCES icinga_host (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT icinga_host_field_datatype
FOREIGN KEY datatype (datatype_id)
REFERENCES director_datatype (id)
ON DELETE RESTRICT
CONSTRAINT icinga_host_field_datafield
FOREIGN KEY datafield(datafield_id)
REFERENCES director_datafield (id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@ -512,23 +511,18 @@ CREATE TABLE icinga_service_var (
CREATE TABLE icinga_service_field (
service_id INT(10) UNSIGNED NOT NULL COMMENT 'Makes only sense for templates',
fieldname VARCHAR(64) NOT NULL,
caption VARCHAR(255) NOT NULL,
datatype_id INT(10) UNSIGNED NOT NULL,
-- datatype_param? multiple ones?
default_value TEXT DEFAULT NULL,
format enum ('string', 'json', 'expression'),
PRIMARY KEY (service_id, fieldname),
KEY search_idx (fieldname),
datafield_id INT(10) UNSIGNED NOT NULL,
is_required ENUM('y', 'n') DEFAULT NULL,
PRIMARY KEY (service_id, datafield_id),
CONSTRAINT icinga_service_field_service
FOREIGN KEY service (service_id)
REFERENCES icinga_service (id)
FOREIGN KEY service(service_id)
REFERENCES icinga_service (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT icinga_service_field_datatype
FOREIGN KEY datatype (datatype_id)
REFERENCES director_datatype (id)
ON DELETE RESTRICT
CONSTRAINT icinga_service_field_datafield
FOREIGN KEY datafield(datafield_id)
REFERENCES director_datafield (id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@ -558,6 +552,7 @@ CREATE TABLE icinga_hostgroup (
KEY search_idx (display_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- TODO: probably useless
CREATE TABLE icinga_hostgroup_inheritance (
hostgroup_id INT(10) UNSIGNED NOT NULL,
parent_hostgroup_id INT(10) UNSIGNED NOT NULL,