Files
office_translator/alembic/versions/006_fix_tier_check_constraint.py
sepehr adc3583358
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m57s
fix(db): make migrations and glossary index SQLite-compatible
2026-06-14 19:01:07 +02:00

50 lines
1.5 KiB
Python

"""Fix tier CHECK constraint to allow all plan tiers
Revision ID: 006
Revises: cb71a958ad92
"""
from alembic import op
revision = "006"
down_revision = "a1b2c3d4e5f6"
branch_labels = None
depends_on = None
def upgrade() -> None:
conn = op.get_bind()
dialect = conn.dialect.name
if dialect == "sqlite":
# Migration 002 skipped the CHECK constraint on SQLite; just create it now.
with op.batch_alter_table("users") as batch_op:
batch_op.create_check_constraint(
"ck_users_tier",
"tier IN ('free', 'starter', 'pro', 'business', 'enterprise')",
)
else:
op.execute("ALTER TABLE users DROP CONSTRAINT IF EXISTS ck_users_tier")
op.execute(
"ALTER TABLE users ADD CONSTRAINT ck_users_tier "
"CHECK (tier IN ('free', 'starter', 'pro', 'business', 'enterprise'))"
)
def downgrade() -> None:
conn = op.get_bind()
dialect = conn.dialect.name
if dialect == "sqlite":
with op.batch_alter_table("users") as batch_op:
batch_op.drop_constraint("ck_users_tier", type_="check")
batch_op.create_check_constraint(
"ck_users_tier",
"tier IN ('free', 'pro')",
)
else:
op.execute("ALTER TABLE users DROP CONSTRAINT IF EXISTS ck_users_tier")
op.execute(
"ALTER TABLE users ADD CONSTRAINT ck_users_tier "
"CHECK (tier IN ('free', 'pro'))"
)