42 lines
1.5 KiB
Python
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'))"
|
|
)
|