BEGIN; SET LOCAL lock_timeout = '10s'; SELECT pg_advisory_xact_lock(290926,170004); DO $guard$ BEGIN IF EXISTS(SELECT 1 FROM mne.compatibility_controls WHERE enabled) OR EXISTS(SELECT 1 FROM mne.identity_links) OR EXISTS(SELECT 1 FROM mne.sector_links) OR EXISTS(SELECT 1 FROM mne.business_links) OR EXISTS(SELECT 1 FROM mne.compatibility_rejections) OR EXISTS(SELECT 1 FROM mne.compatibility_checkpoints) OR EXISTS(SELECT 1 FROM mne.parties WHERE party_type='person') THEN RAISE EXCEPTION 'Compatibility evidence or dependencies exist; archive and reconcile before DOWN'; END IF; END $guard$; DROP TABLE mne.compatibility_controls,mne.compatibility_rejections,mne.compatibility_checkpoints, mne.business_links,mne.sector_links,mne.identity_links; ALTER TABLE mne.parties DROP CONSTRAINT ck_parties_identity_links; ALTER TABLE mne.parties ADD CONSTRAINT parties_check CHECK ((party_type='organization' AND organization_id IS NOT NULL AND user_id IS NULL) OR (party_type='person' AND user_id IS NOT NULL AND organization_id IS NULL)); COMMIT;