Newer
Older
gn-synapse / alembic / versions / 20261003_0005_event_expired.py
""" Статус события expired: ttl_seconds реально применяется, ретеншн чистит старое

Revision ID: a1c4e7d52b98
Revises: c8e4f2b77d10
Create Date: 2026-10-03
"""

from alembic import op

revision = "a1c4e7d52b98"
down_revision = "c8e4f2b77d10"
branch_labels = None
depends_on = None

STATUS_NEW = "status IN ('queued', 'processing', 'done', 'failed', 'expired')"
STATUS_OLD = "status IN ('queued', 'processing', 'done', 'failed')"


def upgrade() -> None:
    op.drop_constraint("ck_event_status", "events", type_="check")
    op.create_check_constraint("ck_event_status", "events", STATUS_NEW)


def downgrade() -> None:
    # События в expired обратно в queued не возвращаем — просто роняем
    # constraint; их нет после первого прогона ретеншна.
    op.drop_constraint("ck_event_status", "events", type_="check")
    op.create_check_constraint("ck_event_status", "events", STATUS_OLD)