diff --git a/backend/migrations/040_fixes.sql b/backend/migrations/040_fixes.sql index 73898db..4657077 100644 --- a/backend/migrations/040_fixes.sql +++ b/backend/migrations/040_fixes.sql @@ -15,15 +15,15 @@ CREATE UNIQUE INDEX IF NOT EXISTS uq_chat_rooms_general_per_hotel WHERE type = 'general'; -- Fix 2: replace 'standard' tier with 'bronze' (the UI uses bronze/silver/gold/platinum) --- Drop the old check constraint that only allows 'standard' instead of 'bronze' +-- Drop the old check constraint first ALTER TABLE guests DROP CONSTRAINT IF EXISTS guests_loyalty_tier_check; --- Add the correct constraint -ALTER TABLE guests - ADD CONSTRAINT guests_loyalty_tier_check - CHECK (loyalty_tier IN ('bronze', 'silver', 'gold', 'platinum')); - --- Migrate existing 'standard' rows to 'bronze' +-- Migrate existing 'standard' rows to 'bronze' (must happen BEFORE adding the new constraint) UPDATE guests SET loyalty_tier = 'bronze' WHERE loyalty_tier NOT IN ('bronze', 'silver', 'gold', 'platinum'); + +-- Now add the correct constraint +ALTER TABLE guests + ADD CONSTRAINT guests_loyalty_tier_check + CHECK (loyalty_tier IN ('bronze', 'silver', 'gold', 'platinum'));