"""add_manual_review_status Revision ID: 0008 Revises: 0007 Create Date: 2026-08-16 21:55:02.604147 """ from __future__ import annotations from collections.abc import Sequence from alembic import op # revision identifiers, used by Alembic. revision: str = "0008" down_revision: str | None = "0007" branch_labels: str | Sequence[str] | None = None depends_on: str | Sequence[str] | None = None def upgrade() -> None: # Drop old check constraint and add new one with manual_review status op.execute("ALTER TABLE documents DROP CONSTRAINT documents_status_check") op.execute( "ALTER TABLE documents ADD CONSTRAINT documents_status_check " "CHECK (status IN ('queued','extracting','prescreening','ocr','analyzing','done','failed','manual_review'))" ) # Update existing documents with failed status but manual_review stage to manual_review status op.execute( "UPDATE documents SET status = 'manual_review' WHERE status = 'failed' AND stage = 'manual_review'" ) def downgrade() -> None: # Update manual_review status back to failed op.execute("UPDATE documents SET status = 'failed' WHERE status = 'manual_review'") # Drop new constraint and restore old one op.execute("ALTER TABLE documents DROP CONSTRAINT documents_status_check") op.execute( "ALTER TABLE documents ADD CONSTRAINT documents_status_check " "CHECK (status IN ('queued','extracting','prescreening','ocr','analyzing','done','failed'))" )