19 active fristenrechner codes renamed from UPPER_SNAKE to the lowercase three-position dot-separated taxonomy ratified by m on 2026-05-18 (see docs/design-proceeding-code-taxonomy-2026-05-18.md). IDs are stable; only the `code` STRING changes. Adds upc.ccr.cfi as an illustrative peer of upc.inf.cfi (is_active=true, no rules — Go code routes cascade hits back to inf.cfi with with_ccr=true). Also updates the soft `proceeding_type_code` references on paliad.event_category_concepts so the soft-join through proceeding_types.code keeps resolving, refreshes the deadline_search materialized view, and installs the paliad_proceeding_code_shape CHECK constraint enforcing `^[a-z]+\\.[a-z]+\\.[a-z]+$` on every active row. Idempotent: every UPDATE is guarded on the OLD code; INSERT uses WHERE NOT EXISTS; CHECK is dropped-then-recreated by name. Backup snapshot lives in paliad.proceeding_types_pre_096. Dry-run on the live youpc DB (BEGIN; … ROLLBACK) confirmed 20 active rows on the new shape, 0 old codes left, 1 active upc.ccr.cfi.
100 lines
5.5 KiB
SQL
100 lines
5.5 KiB
SQL
-- Reverses mig 096. Restores the original UPPER_SNAKE codes on
|
|
-- paliad.proceeding_types + paliad.event_category_concepts, drops the
|
|
-- new upc.ccr.cfi row, removes the shape CHECK, refreshes the
|
|
-- deadline_search materialized view, then drops the snapshot table.
|
|
--
|
|
-- audit_reason wrapper required by the mig 079 audit trigger.
|
|
|
|
SELECT set_config(
|
|
'paliad.audit_reason',
|
|
'mig 096 (down): revert t-paliad-206 proceeding-code rename — restore UPPER_SNAKE codes from proceeding_types_pre_096, delete upc.ccr.cfi peer, drop shape CHECK',
|
|
true);
|
|
|
|
-- =============================================================================
|
|
-- 1. Drop the shape CHECK first so the UPPER_SNAKE restores don't trip it.
|
|
-- =============================================================================
|
|
|
|
ALTER TABLE paliad.proceeding_types
|
|
DROP CONSTRAINT IF EXISTS paliad_proceeding_code_shape;
|
|
|
|
-- =============================================================================
|
|
-- 2. Delete the upc.ccr.cfi peer. The down restores the pre-096 state, which
|
|
-- didn't have this row. If the row is already missing, the DELETE
|
|
-- matches zero — idempotent.
|
|
-- =============================================================================
|
|
|
|
DELETE FROM paliad.proceeding_types
|
|
WHERE code = 'upc.ccr.cfi';
|
|
|
|
-- =============================================================================
|
|
-- 3. Restore proceeding_types.code from the pre_096 snapshot. The snapshot
|
|
-- captured the rows at first up-migration run; if the table is missing
|
|
-- (down run before up), the restore is a no-op.
|
|
-- =============================================================================
|
|
|
|
DO $$
|
|
DECLARE
|
|
v_snap_exists boolean;
|
|
BEGIN
|
|
SELECT EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.tables
|
|
WHERE table_schema = 'paliad'
|
|
AND table_name = 'proceeding_types_pre_096'
|
|
) INTO v_snap_exists;
|
|
|
|
IF NOT v_snap_exists THEN
|
|
RAISE NOTICE
|
|
'mig 096 (down): snapshot table paliad.proceeding_types_pre_096 missing — nothing to restore';
|
|
RETURN;
|
|
END IF;
|
|
|
|
UPDATE paliad.proceeding_types pt
|
|
SET code = snap.code
|
|
FROM paliad.proceeding_types_pre_096 snap
|
|
WHERE pt.id = snap.id
|
|
AND pt.code <> snap.code;
|
|
END $$;
|
|
|
|
-- =============================================================================
|
|
-- 4. Revert soft references on event_category_concepts.proceeding_type_code
|
|
-- by running the inverse mapping. Symmetric with §4 of the up migration.
|
|
-- =============================================================================
|
|
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'UPC_INF' WHERE proceeding_type_code = 'upc.inf.cfi';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'UPC_REV' WHERE proceeding_type_code = 'upc.rev.cfi';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'UPC_PI' WHERE proceeding_type_code = 'upc.pi.cfi';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'UPC_APP' WHERE proceeding_type_code = 'upc.apl.merits';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'UPC_DAMAGES' WHERE proceeding_type_code = 'upc.dmgs.cfi';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'UPC_DISCOVERY' WHERE proceeding_type_code = 'upc.disc.cfi';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'UPC_COST_APPEAL' WHERE proceeding_type_code = 'upc.apl.cost';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'UPC_APP_ORDERS' WHERE proceeding_type_code = 'upc.apl.order';
|
|
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'DE_INF' WHERE proceeding_type_code = 'de.inf.lg';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'DE_INF_OLG' WHERE proceeding_type_code = 'de.inf.olg';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'DE_INF_BGH' WHERE proceeding_type_code = 'de.inf.bgh';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'DE_NULL' WHERE proceeding_type_code = 'de.null.bpatg';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'DE_NULL_BGH' WHERE proceeding_type_code = 'de.null.bgh';
|
|
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'EP_GRANT' WHERE proceeding_type_code = 'epa.grant.exa';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'EPA_OPP' WHERE proceeding_type_code = 'epa.opp.opd';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'EPA_APP' WHERE proceeding_type_code = 'epa.opp.boa';
|
|
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'DPMA_OPP' WHERE proceeding_type_code = 'dpma.opp.dpma';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'DPMA_BPATG_BESCHWERDE' WHERE proceeding_type_code = 'dpma.appeal.bpatg';
|
|
UPDATE paliad.event_category_concepts SET proceeding_type_code = 'DPMA_BGH_RB' WHERE proceeding_type_code = 'dpma.appeal.bgh';
|
|
|
|
-- =============================================================================
|
|
-- 5. Refresh deadline_search so the reverted proceeding_code strings
|
|
-- repopulate the materialized view.
|
|
-- =============================================================================
|
|
|
|
REFRESH MATERIALIZED VIEW paliad.deadline_search;
|
|
|
|
-- =============================================================================
|
|
-- 6. Drop the snapshot table so a re-applied up migration captures a
|
|
-- fresh snapshot of the current state.
|
|
-- =============================================================================
|
|
|
|
DROP TABLE IF EXISTS paliad.proceeding_types_pre_096;
|