Files
wyndham-ARR/database/003_finance_zero_night_records.down.sql
2026-07-29 16:38:05 +08:00

37 lines
881 B
PL/PgSQL

-- DESTRUCTIVE rollback draft for migration 003.
-- Do not execute while a retained same-day/zero-night Finance record exists.
-- Target database: booking_test.
BEGIN;
DO $$
BEGIN
IF EXISTS (
SELECT 1
FROM finance.daily_records
WHERE arrival IS NOT NULL
AND departure = arrival
AND nights = 0
) THEN
RAISE EXCEPTION
'remove or migrate same-day zero-night records before rolling back migration 003';
END IF;
END;
$$;
ALTER TABLE finance.daily_records
DROP CONSTRAINT daily_records_dates_and_nights_valid;
ALTER TABLE finance.daily_records
ADD CONSTRAINT daily_records_dates_and_nights_valid CHECK (
arrival IS NULL
OR departure IS NULL
OR nights IS NULL
OR (
departure > arrival
AND nights = departure - arrival
)
);
COMMIT;