| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- """方案拖动排序:doc_document 新增 sort_no。
- Revision ID: 0008_document_sort_no
- Revises: 0007_document_description
- Create Date: 2026-08-18
- 变更要点:
- 1. doc_document 新增 sort_no(INT,非空,默认0)。
- 2. 用途:管理员在方案管理页拖动主案/子方案排序——主案在全局范围内
- 排序,子方案在所属主案内排序;共享附件库不参与拖动排序。
- 3. 存量数据保持0,列表按 (sort_no, id) 升序退化为创建顺序;首次拖动
- 重排后按步长10重新编号。
- """
- from __future__ import annotations
- from collections.abc import Sequence
- from alembic import op
- import sqlalchemy as sa
- revision: str = "0008_document_sort_no"
- down_revision: str | None = "0007_document_description"
- branch_labels: str | Sequence[str] | None = None
- depends_on: str | Sequence[str] | None = None
- _TABLE = "doc_document"
- _COLUMN = "sort_no"
- def _existing_columns(table: str) -> set[str]:
- inspector = sa.inspect(op.get_bind())
- return {item["name"] for item in inspector.get_columns(table)}
- def upgrade() -> None:
- if _COLUMN not in _existing_columns(_TABLE):
- op.add_column(
- _TABLE,
- sa.Column(_COLUMN, sa.Integer(), nullable=False, server_default=sa.text("0")),
- )
- def downgrade() -> None:
- if _COLUMN in _existing_columns(_TABLE):
- op.drop_column(_TABLE, _COLUMN)
|