From 879accfc7ff2694f7f81ba8a7a1e6b654631ec08 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Sun, 12 Apr 2026 13:39:13 +0200 Subject: [PATCH] fix: allow tenant slug reuse after soft-delete Replace absolute UNIQUE constraint on tenants.slug with a partial unique index that excludes DELETED rows. This allows re-creating a tenant with the same slug after deletion. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../db/migration/V014__tenant_slug_partial_unique.sql | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/main/resources/db/migration/V014__tenant_slug_partial_unique.sql diff --git a/src/main/resources/db/migration/V014__tenant_slug_partial_unique.sql b/src/main/resources/db/migration/V014__tenant_slug_partial_unique.sql new file mode 100644 index 0000000..b072d87 --- /dev/null +++ b/src/main/resources/db/migration/V014__tenant_slug_partial_unique.sql @@ -0,0 +1,5 @@ +-- Replace absolute unique constraint on slug with partial unique index +-- that excludes DELETED tenants, allowing slug reuse after soft-delete. +ALTER TABLE tenants DROP CONSTRAINT tenants_slug_key; +DROP INDEX IF EXISTS idx_tenants_slug; +CREATE UNIQUE INDEX tenants_slug_active_key ON tenants (slug) WHERE status != 'DELETED';