diff --git a/backend/src/main/resources/db/migration/V026__add_invite_invalidated_at.sql b/backend/src/main/resources/db/migration/V026__add_invite_invalidated_at.sql index c9a5511..f210870 100644 --- a/backend/src/main/resources/db/migration/V026__add_invite_invalidated_at.sql +++ b/backend/src/main/resources/db/migration/V026__add_invite_invalidated_at.sql @@ -1,6 +1,17 @@ ALTER TABLE household_invite ADD COLUMN invalidated_at timestamptz; +-- Mark all but the most-recent invite per household as invalidated, +-- so the unique partial index below can be created on dev databases +-- that accumulated multiple pending invites before this migration was added. +UPDATE household_invite +SET invalidated_at = NOW() +WHERE id NOT IN ( + SELECT DISTINCT ON (household_id) id + FROM household_invite + ORDER BY household_id, expires_at DESC +); + CREATE UNIQUE INDEX uq_household_invite_active ON household_invite (household_id) WHERE invalidated_at IS NULL;