diff options
Diffstat (limited to 'schema/pgsql-legacy-changes/upgrade_22.sql')
-rw-r--r-- | schema/pgsql-legacy-changes/upgrade_22.sql | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/schema/pgsql-legacy-changes/upgrade_22.sql b/schema/pgsql-legacy-changes/upgrade_22.sql new file mode 100644 index 0000000..d7aaf51 --- /dev/null +++ b/schema/pgsql-legacy-changes/upgrade_22.sql @@ -0,0 +1,55 @@ +CREATE TABLE icinga_host_field ( + host_id integer NOT NULL, + fieldname character varying(64) NOT NULL, + caption character varying(255) NOT NULL, + datatype_id integer NOT NULL, +-- datatype_param? multiple ones? + default_value text DEFAULT NULL, + format enum_property_format, + PRIMARY KEY (host_id, fieldname), + CONSTRAINT icinga_host_field_host + FOREIGN KEY (host_id) + REFERENCES icinga_host (id) + ON DELETE CASCADE + ON UPDATE CASCADE, + CONSTRAINT icinga_host_field_datatype + FOREIGN KEY (datatype_id) + REFERENCES director_datatype (id) + ON DELETE RESTRICT + ON UPDATE CASCADE +); + +CREATE UNIQUE INDEX host_field_key ON icinga_host_field (host_id, fieldname); +CREATE INDEX host_field_search_idx ON icinga_host_field (fieldname); +CREATE INDEX host_field_host ON icinga_host_field (host_id); +CREATE INDEX host_field_datatype ON icinga_host_field (datatype); + +COMMENT ON COLUMN icinga_host_field.host_id IS 'Makes only sense for templates'; + + +CREATE TABLE icinga_service_field ( + service_id integer NOT NULL, + fieldname character varying(64) NOT NULL, + caption character varying(255) NOT NULL, + datatype_id integer NOT NULL, +-- datatype_param? multiple ones? + default_value text DEFAULT NULL, + format enum_property_format, + PRIMARY KEY (service_id, fieldname), + CONSTRAINT icinga_service_field_service + FOREIGN KEY (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 + ON UPDATE CASCADE +); + +CREATE UNIQUE INDEX service_field_key ON icinga_service_field (service_id, fieldname); +CREATE INDEX service_field_search_idx ON icinga_service_field (fieldname); +CREATE INDEX service_field_service ON icinga_service_field (service_id); +CREATE INDEX service_field_datatype ON icinga_service_field (datatype); +COMMENT ON COLUMN icinga_service_field.service_id IS 'Makes only sense for templates'; |