Files
qt5-legatus-legacy/Lts/Tests/DatabaseInitialisation/salchau_db_update.sql
T
2026-08-13 18:33:10 +02:00

63 lines
5.6 KiB
SQL
Executable File

-- update cascade
SET SEARCH_PATH TO ism;
-- Drop tables/views/sequences/constraints
ALTER TABLE IF EXISTS ism_asset DROP CONSTRAINT IF EXISTS FK_ism_asset_mounting_point_type_id_ism_mounting_point_type_id CASCADE;
ALTER TABLE IF EXISTS ism_asset DROP CONSTRAINT IF EXISTS FK_ism_asset_asset_state_id_ism_asset_state_id CASCADE;
ALTER TABLE IF EXISTS ism_mounting_point_asset DROP CONSTRAINT IF EXISTS FK_ism_mounting_point_asset_asset_id_ism_asset_id CASCADE;
ALTER TABLE IF EXISTS ism_mounting_point_asset DROP CONSTRAINT IF EXISTS FK_ism_mounting_point_asset_structure_element_id_ism_structure_ CASCADE;
ALTER TABLE IF EXISTS ism_mounting_point_plan DROP CONSTRAINT IF EXISTS FK_ism_mounting_point_plan_structure_element_id_ism_structure_e CASCADE;
ALTER TABLE IF EXISTS ism_mounting_point_plan DROP CONSTRAINT IF EXISTS FK_ism_mounting_point_plan_mounting_point_schedule_id_ism_mount CASCADE;
ALTER TABLE IF EXISTS ism_mounting_point_schedule DROP CONSTRAINT IF EXISTS FK_ism_mounting_point_schedule_exercise_id_exercise_id CASCADE;
ALTER TABLE IF EXISTS ism_structure_element DROP CONSTRAINT IF EXISTS FK_ism_structure_element_structure_element_type_id_ism_structur CASCADE;
ALTER TABLE IF EXISTS ism_structure_element DROP CONSTRAINT IF EXISTS FK_ism_structure_element_mounting_point_type_id_ism_mounting_po CASCADE;
ALTER TABLE IF EXISTS ism_structure_element DROP CONSTRAINT IF EXISTS FK_ism_structure_element_main_structure_element_id_ism_main_str CASCADE;
ALTER TABLE IF EXISTS ism_structure_element_footprint DROP CONSTRAINT IF EXISTS FK_ism_structure_element_footprint_structure_element_id_ism_str CASCADE;
-- Create foreign keys
ALTER TABLE ism_asset ADD CONSTRAINT FK_ism_asset_mounting_point_type_id_ism_mounting_point_type_id FOREIGN KEY (mounting_point_type_id) REFERENCES ism_mounting_point_type (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_asset ADD CONSTRAINT FK_ism_asset_asset_state_id_ism_asset_state_id FOREIGN KEY (asset_state_id) REFERENCES ism_asset_state (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_mounting_point_asset ADD CONSTRAINT FK_ism_mounting_point_asset_asset_id_ism_asset_id FOREIGN KEY (asset_id) REFERENCES ism_asset (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_mounting_point_asset ADD CONSTRAINT FK_ism_mounting_point_asset_structure_element_id_ism_structure_ FOREIGN KEY (structure_element_id) REFERENCES ism_structure_element (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_mounting_point_plan ADD CONSTRAINT FK_ism_mounting_point_plan_structure_element_id_ism_structure_e FOREIGN KEY (structure_element_id) REFERENCES ism_structure_element (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_mounting_point_plan ADD CONSTRAINT FK_ism_mounting_point_plan_mounting_point_schedule_id_ism_mount FOREIGN KEY (mounting_point_schedule_id) REFERENCES ism_mounting_point_schedule (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_mounting_point_schedule ADD CONSTRAINT FK_ism_mounting_point_schedule_exercise_id_exercise_id FOREIGN KEY (exercise_id) REFERENCES exm.exercise (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_structure_element ADD CONSTRAINT FK_ism_structure_element_structure_element_type_id_ism_structur FOREIGN KEY (structure_element_type_id) REFERENCES ism_structure_element_type (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_structure_element ADD CONSTRAINT FK_ism_structure_element_mounting_point_type_id_ism_mounting_po FOREIGN KEY (mounting_point_type_id) REFERENCES ism_mounting_point_type (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_structure_element ADD CONSTRAINT FK_ism_structure_element_main_structure_element_id_ism_main_str FOREIGN KEY (main_structure_element_id) REFERENCES ism_main_structure_element (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ism_structure_element_footprint ADD CONSTRAINT FK_ism_structure_element_footprint_structure_element_id_ism_str FOREIGN KEY (structure_element_id) REFERENCES ism_structure_element (id) ON DELETE CASCADE ON UPDATE CASCADE;
-- update ids
UPDATE ism.ism_structure_element SET id = id + 60000;
UPDATE ism.ism_asset SET id = id + 3000;
UPDATE ism.ism_mounting_point_asset SET id = id + 3000;
UPDATE ism.ism_mounting_point_plan SET id = id + 40000;
UPDATE ism.ism_structure_element_footprint SET id = id + 4000;
-- delete unnecessary buildings and assets
DELETE FROM ism.ism_asset where id IN (SELECT asset_id FROM ism.ism_mounting_point_asset WHERE structure_element_id IN (SELECT id FROM ism.ism_structure_element WHERE main_structure_element_id < 300));
DELETE FROM ism.ism_main_structure_element WHERE id < 300;
-- pg_dump Salchau
pg_dump salchau -t ism.ism_main_structure_element -t ism.ism_structure_element -t ism.ism_asset -t ism.ism_mounting_point_asset -t ism.ism_mounting_point_plan -t ism.ism_structure_element_footprint --column-inserts --data-only > salchau.sql
-- delete old Salchau Gebaude und assets (Guez dump)
DELETE FROM ism.ism_asset where id IN (SELECT asset_id FROM ism.ism_mounting_point_asset WHERE structure_element_id IN (SELECT id FROM ism.ism_structure_element WHERE main_structure_element_id IN (724, 725, 726, 1121)));
DELETE FROM ism.ism_main_structure_element WHERE ID in (724, 725, 726, 1121);
-- re-import salchau buildings
psql guez -f salchau.sql
-- update sequences
ALTER SEQUENCE ism.ism_structure_element_id_seq RESTART WITH 62000;
ALTER SEQUENCE ism.ism_asset_id_seq RESTART WITH 5100;
ALTER SEQUENCE ism.ism_mounting_point_asset_id_seq RESTART WITH 3100;
ALTER SEQUENCE ism.ism_mounting_point_plan_id_seq RESTART WITH 41000;
ALTER SEQUENCE ism.ism_structure_element_footprint_id_seq RESTART WITH 4200;
ALTER SEQUENCE ism.ism_main_structure_element_id_seq RESTART WITH 20001;