Files
Investidor-V2/migrations/004_mne_compatibility_down.sql
nala 3dc7c5c649
tests / ci (push) Canceled after 0s
commit 30/9
2026-09-30 09:05:43 +02:00

23 lines
1.0 KiB
PL/PgSQL

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;