Phase 3 Slice 3 cutover-window guard. BEFORE INSERT/UPDATE/DELETE trigger on paliad.event_deadlines raises EXCEPTION with a message pointing the writer at paliad.deadline_rules. SELECT remains unaffected. Why: Slice 3 just moved 77 rows into the unified backend (mig 085). Until Slice 4 cuts every reader over and Slice 9 drops the legacy table, the two sides must not diverge. Letting any write through event_deadlines would silently regress "Was kommt nach…" parity. Supabase service_role bypasses RLS but NOT triggers — direct DB maintenance (psql, migration scripts, MCP) is also blocked. That's intentional: every further edit to event_deadlines pre-Slice-9 is a mistake. Slice 9's mig ~090 will drop the table + this trigger together as part of the legacy cleanup. Function is plain (not SECURITY DEFINER): the trigger function only RAISE EXCEPTIONs, no INSERTs anywhere, so it doesn't need elevated privileges. Caller's RLS / role context doesn't matter — the raise fires unconditionally before any tuple lock is taken.
6 lines
272 B
SQL
6 lines
272 B
SQL
-- t-paliad-184 down — reverts the read-only wrapper from
|
|
-- 086_event_deadlines_readonly.up.sql. Order: trigger → function.
|
|
|
|
DROP TRIGGER IF EXISTS event_deadlines_readonly ON paliad.event_deadlines;
|
|
DROP FUNCTION IF EXISTS paliad.event_deadlines_readonly_trigger();
|