B2: Migration 0014 — drop global unique on currency.code, add tenant-scoped unique constraint

This commit is contained in:
2026-07-04 01:32:13 +00:00
parent 0352762229
commit 6e0ab47f3a
@@ -0,0 +1,35 @@
"""Fix currency unique constraint — tenant-scoped instead of global.
Revision ID: 0014_currency_unique_fix
Revises: 0013_addresses
Create Date: 2026-07-04
"""
from __future__ import annotations
from typing import Sequence, Union
from alembic import op
revision: str = "0014_currency_unique_fix"
down_revision: Union[str, None] = "0013_addresses"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# Drop the old global unique constraint on currencies.code
op.execute("ALTER TABLE currencies DROP CONSTRAINT IF EXISTS currencies_code_key")
op.execute("DROP INDEX IF EXISTS currencies_code_key")
# Add tenant-scoped unique constraint
op.create_unique_constraint(
"uq_currency_tenant_code",
"currencies",
["tenant_id", "code"],
)
def downgrade() -> None:
op.drop_constraint("uq_currency_tenant_code", "currencies", type_="unique")
op.execute("ALTER TABLE currencies ADD CONSTRAINT currencies_code_key UNIQUE (code)")