0007_document_description.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. """文档详细说明:doc_document 新增 description。
  2. Revision ID: 0007_document_description
  3. Revises: 0006_document_organization
  4. Create Date: 2026-08-16
  5. 变更要点:
  6. 1. doc_document 新增 description(TEXT,可空)。
  7. 2. 用途:管理员在"查看"对话框右侧维护详细说明,普通用户在表格
  8. 操作列"说明"按钮 Tip 与查看对话框中阅读。
  9. 3. 不参与全文检索(search_text 不包含该字段),仅作人工备注展示。
  10. """
  11. from __future__ import annotations
  12. from collections.abc import Sequence
  13. from alembic import op
  14. import sqlalchemy as sa
  15. revision: str = "0007_document_description"
  16. down_revision: str | None = "0006_document_organization"
  17. branch_labels: str | Sequence[str] | None = None
  18. depends_on: str | Sequence[str] | None = None
  19. _TABLE = "doc_document"
  20. _COLUMN = "description"
  21. def _existing_columns(table: str) -> set[str]:
  22. inspector = sa.inspect(op.get_bind())
  23. return {item["name"] for item in inspector.get_columns(table)}
  24. def upgrade() -> None:
  25. if _COLUMN not in _existing_columns(_TABLE):
  26. op.add_column(
  27. _TABLE,
  28. sa.Column(_COLUMN, sa.Text(), nullable=True),
  29. )
  30. def downgrade() -> None:
  31. if _COLUMN in _existing_columns(_TABLE):
  32. op.drop_column(_TABLE, _COLUMN)