0005_extraction_judgement_status.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. """add extraction judgement status
  2. Revision ID: 0005_extraction_judgement_status
  3. Revises: 0004_extraction_edit_accuracy
  4. Create Date: 2026-10-12
  5. """
  6. from __future__ import annotations
  7. import sqlalchemy as sa
  8. from alembic import op
  9. revision = "0005_extraction_judgement_status"
  10. down_revision = "0004_extraction_edit_accuracy"
  11. branch_labels = None
  12. depends_on = None
  13. def upgrade() -> None:
  14. op.add_column(
  15. "document_extractions",
  16. sa.Column(
  17. "edit_judgement_status",
  18. sa.String(length=32),
  19. nullable=False,
  20. server_default="not_required",
  21. ),
  22. )
  23. op.execute(
  24. """
  25. UPDATE document_extractions
  26. SET edit_judgement_status = CASE
  27. WHEN edit_judged_at IS NOT NULL THEN 'completed'
  28. WHEN edited = 1 THEN 'pending'
  29. ELSE 'not_required'
  30. END
  31. """
  32. )
  33. op.create_index(
  34. "ix_document_extractions_edit_judgement_status",
  35. "document_extractions",
  36. ["edit_judgement_status"],
  37. )
  38. def downgrade() -> None:
  39. op.drop_index(
  40. "ix_document_extractions_edit_judgement_status",
  41. table_name="document_extractions",
  42. )
  43. op.drop_column("document_extractions", "edit_judgement_status")