Files
orion/alembic/versions/z_add_unique_subdomain_domain_constraints.py
Samir Boulahtit e7f8e61717
Some checks failed
CI / ruff (push) Successful in 10s
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled
CI / pytest (push) Has been cancelled
feat: add unique constraints for custom subdomain and domain per platform
Add UNIQUE(custom_subdomain, platform_id) on store_platforms to prevent
two stores from claiming the same subdomain on the same platform.
Add UNIQUE(store_id, platform_id) on store_domains to enforce one custom
domain per store per platform.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 12:05:17 +01:00

34 lines
995 B
Python

"""add unique constraints for custom_subdomain and store domain per platform
Revision ID: z_unique_subdomain_domain
Revises: a44f4956cfb1
Create Date: 2026-02-26
"""
from alembic import op
revision = "z_unique_subdomain_domain"
down_revision = ("a44f4956cfb1", "tenancy_003")
branch_labels = None
depends_on = None
def upgrade() -> None:
# StorePlatform: same custom_subdomain cannot be claimed twice on the same platform
op.create_unique_constraint(
"uq_custom_subdomain_platform",
"store_platforms",
["custom_subdomain", "platform_id"],
)
# StoreDomain: a store can have at most one custom domain per platform
op.create_unique_constraint(
"uq_store_domain_platform",
"store_domains",
["store_id", "platform_id"],
)
def downgrade() -> None:
op.drop_constraint("uq_store_domain_platform", "store_domains", type_="unique")
op.drop_constraint("uq_custom_subdomain_platform", "store_platforms", type_="unique")