"""Rename processing_status values to user-meaningful lifecycle states. Old: pending, transcribed, extracted, published New: not_started, queued, processing, error, complete Revision ID: 008_rename_processing_status Revises: 007_drop_review_columns """ from alembic import op revision = "008_rename_processing_status" down_revision = "007_drop_review_columns" branch_labels = None depends_on = None def upgrade() -> None: # Add new enum values first op.execute("ALTER TYPE processingstatus ADD VALUE IF NOT EXISTS 'not_started'") op.execute("ALTER TYPE processingstatus ADD VALUE IF NOT EXISTS 'queued'") op.execute("ALTER TYPE processingstatus ADD VALUE IF NOT EXISTS 'processing'") op.execute("ALTER TYPE processingstatus ADD VALUE IF NOT EXISTS 'error'") op.execute("ALTER TYPE processingstatus ADD VALUE IF NOT EXISTS 'complete'") # Migrate existing rows op.execute("UPDATE source_videos SET processing_status = 'not_started' WHERE processing_status = 'pending'") op.execute("UPDATE source_videos SET processing_status = 'queued' WHERE processing_status = 'transcribed'") op.execute("UPDATE source_videos SET processing_status = 'processing' WHERE processing_status = 'extracted'") op.execute("UPDATE source_videos SET processing_status = 'complete' WHERE processing_status = 'published'") def downgrade() -> None: op.execute("UPDATE source_videos SET processing_status = 'pending' WHERE processing_status = 'not_started'") op.execute("UPDATE source_videos SET processing_status = 'transcribed' WHERE processing_status = 'queued'") op.execute("UPDATE source_videos SET processing_status = 'extracted' WHERE processing_status = 'processing'") op.execute("UPDATE source_videos SET processing_status = 'published' WHERE processing_status = 'complete'")