"""${message} Revision ID: ${up_revision} Revises: ${down_revision | comma,n} Create Date: ${create_date} Reversible: yes | no —— 若为 no 必须写明原因。CI 会跑 upgrade → downgrade → upgrade, 不可回滚的迁移必须显式拆成「先加列后回填」两步,不允许一步到位。 """ from __future__ import annotations from collections.abc import Sequence import sqlalchemy as sa from alembic import op ${imports if imports else ""} revision: str = ${repr(up_revision)} down_revision: str | None = ${repr(down_revision)} branch_labels: str | Sequence[str] | None = ${repr(branch_labels)} depends_on: str | Sequence[str] | None = ${repr(depends_on)} def upgrade() -> None: ${upgrades if upgrades else "pass"} def downgrade() -> None: ${downgrades if downgrades else "pass"}