feat: prepare ARR for controlled public deployment
This commit is contained in:
36
database/003_finance_zero_night_records.down.sql
Normal file
36
database/003_finance_zero_night_records.down.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user