|
| 1 | +ALTER TABLE contact ADD COLUMN external_uuid char(36) AFTER id; |
| 2 | +ALTER TABLE contactgroup ADD COLUMN external_uuid char(36) AFTER id; |
| 3 | +ALTER TABLE channel ADD COLUMN external_uuid char(36) AFTER id; |
| 4 | + |
| 5 | +UPDATE contact SET external_uuid = UUID() WHERE external_uuid IS NULL; |
| 6 | +UPDATE contactgroup SET external_uuid = UUID() WHERE external_uuid IS NULL; |
| 7 | +UPDATE channel SET external_uuid = UUID() WHERE external_uuid IS NULL; |
| 8 | + |
| 9 | +ALTER TABLE contact MODIFY COLUMN external_uuid char(36) NOT NULL; |
| 10 | +ALTER TABLE contactgroup MODIFY COLUMN external_uuid char(36) NOT NULL; |
| 11 | +ALTER TABLE channel MODIFY COLUMN external_uuid char(36) NOT NULL; |
| 12 | + |
| 13 | +ALTER TABLE contact ADD CONSTRAINT uk_contact_external_uuid UNIQUE (external_uuid); |
| 14 | +ALTER TABLE contactgroup ADD CONSTRAINT uk_contactgroup_external_uuid UNIQUE (external_uuid); |
| 15 | +ALTER TABLE channel ADD CONSTRAINT uk_channel_external_uuid UNIQUE (external_uuid); |
| 16 | + |
| 17 | +ALTER TABLE source |
| 18 | + DROP CONSTRAINT ck_source_icinga2_has_config, |
| 19 | + DROP CONSTRAINT ck_source_bcrypt_listener_password_hash; |
| 20 | +ALTER TABLE source |
| 21 | + DROP COLUMN icinga2_base_url, |
| 22 | + DROP COLUMN icinga2_auth_user, |
| 23 | + DROP COLUMN icinga2_auth_pass, |
| 24 | + DROP COLUMN icinga2_ca_pem, |
| 25 | + DROP COLUMN icinga2_common_name, |
| 26 | + DROP COLUMN icinga2_insecure_tls, |
| 27 | + ADD CONSTRAINT ck_source_bcrypt_listener_password_hash CHECK ( |
| 28 | + listener_password_hash IS NULL OR listener_password_hash LIKE '$2_$%'); |
| 29 | + |
| 30 | +ALTER TABLE rule |
| 31 | + ADD COLUMN source_id bigint DEFAULT NULL AFTER timeperiod_id, |
| 32 | + ADD CONSTRAINT fk_rule_source FOREIGN KEY (source_id) REFERENCES source(id); |
| 33 | + |
| 34 | +UPDATE rule SET source_id = (SELECT id FROM source WHERE type = 'icinga2'); |
| 35 | +ALTER TABLE rule MODIFY COLUMN source_id bigint NOT NULL; |
| 36 | + |
| 37 | +ALTER TABLE schedule ADD COLUMN timezone text AFTER name; |
| 38 | +UPDATE schedule SET timezone = ( |
| 39 | + SELECT entry.timezone |
| 40 | + FROM timeperiod_entry entry |
| 41 | + INNER JOIN timeperiod ON timeperiod.id = entry.timeperiod_id |
| 42 | + INNER JOIN rotation ON rotation.id = timeperiod.owned_by_rotation_id |
| 43 | + WHERE rotation.schedule_id = schedule.id |
| 44 | + ORDER BY entry.id |
| 45 | + LIMIT 1 |
| 46 | +); |
| 47 | +UPDATE schedule SET timezone = 'UTC' WHERE timezone IS NULL; |
| 48 | +ALTER TABLE schedule MODIFY COLUMN timezone text NOT NULL; |
| 49 | + |
| 50 | +ALTER TABLE source ADD COLUMN listener_username varchar(255) AFTER name; |
| 51 | +UPDATE source SET listener_username = CONCAT('source-', source.id) WHERE deleted = 'n'; |
| 52 | +ALTER TABLE source |
| 53 | + ADD CONSTRAINT uk_source_listener_username UNIQUE (listener_username), |
| 54 | + ADD CONSTRAINT ck_source_listener_username_or_deleted CHECK (deleted = 'y' OR listener_username IS NOT NULL); |
0 commit comments