40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
|
|
"""add experiment cookie name
|
||
|
|
|
||
|
|
Revision ID: f25d0f745a17
|
||
|
|
Revises: bd9f6a8b7c1d
|
||
|
|
Create Date: 2026-03-31 00:15:00.000000
|
||
|
|
|
||
|
|
"""
|
||
|
|
from typing import Sequence, Union
|
||
|
|
|
||
|
|
from alembic import op
|
||
|
|
import sqlalchemy as sa
|
||
|
|
|
||
|
|
|
||
|
|
revision: str = 'f25d0f745a17'
|
||
|
|
down_revision: Union[str, None] = 'bd9f6a8b7c1d'
|
||
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
||
|
|
depends_on: Union[str, Sequence[str], None] = None
|
||
|
|
|
||
|
|
|
||
|
|
def upgrade() -> None:
|
||
|
|
op.add_column('experiments', sa.Column('cookie_name', sa.String(length=96), nullable=True))
|
||
|
|
op.execute(
|
||
|
|
"""
|
||
|
|
UPDATE experiments
|
||
|
|
SET cookie_name =
|
||
|
|
CASE experiment_key
|
||
|
|
WHEN 'homepage_hero_test' THEN 'exp_homepage_hero'
|
||
|
|
WHEN 'pricing_cta_test' THEN 'exp_pricing_cta'
|
||
|
|
ELSE 'exp_' || experiment_key
|
||
|
|
END
|
||
|
|
"""
|
||
|
|
)
|
||
|
|
op.alter_column('experiments', 'cookie_name', nullable=False)
|
||
|
|
op.create_unique_constraint('uq_experiments_cookie_name', 'experiments', ['cookie_name'])
|
||
|
|
|
||
|
|
|
||
|
|
def downgrade() -> None:
|
||
|
|
op.drop_constraint('uq_experiments_cookie_name', 'experiments', type_='unique')
|
||
|
|
op.drop_column('experiments', 'cookie_name')
|