003_update_documents_table.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. """update documents table - remove title, template_id, make session_id required
  2. Revision ID: 003
  3. Revises: 002
  4. Create Date: 2026-06-24
  5. """
  6. from alembic import op
  7. import sqlalchemy as sa
  8. revision = "003"
  9. down_revision = "002"
  10. branch_labels = None
  11. depends_on = None
  12. def upgrade() -> None:
  13. # 移除 title 和 template_id 列
  14. op.drop_column("documents", "title")
  15. op.drop_column("documents", "template_id")
  16. # 将 session_id 改为 NOT NULL(先设置默认值,再改约束)
  17. op.execute("UPDATE documents SET session_id = 'unknown' WHERE session_id IS NULL")
  18. op.alter_column(
  19. "documents",
  20. "session_id",
  21. existing_type=sa.String(128),
  22. nullable=False,
  23. )
  24. def downgrade() -> None:
  25. # 恢复 title 和 template_id
  26. op.add_column("documents", sa.Column("title", sa.String(255), nullable=False, server_default=""))
  27. op.add_column("documents", sa.Column("template_id", sa.String(64), nullable=True))
  28. # 恢复 session_id 可为空
  29. op.alter_column(
  30. "documents",
  31. "session_id",
  32. existing_type=sa.String(128),
  33. nullable=True,
  34. )