DealDocumentScreening/migrations/versions/0008_add_manual_review_status.py
2026-08-17 20:49:29 +03:00

42 lines
1.5 KiB
Python

"""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'))"
)