"""Add user admin fields (admin_status, admin_remarks) Revision ID: 028 Revises: 027 Create Date: 2026-07-05 补录管理员备注字段。生产数据库已手动添加过这些字段, 因此 upgrade 做幂等检查。 """ import sqlalchemy as sa from alembic import context, op revision = "028" down_revision = "027" branch_labels = None depends_on = None def _column_exists(table: str, column: str) -> bool: if context.is_offline_mode(): return False conn = op.get_bind() result = conn.execute( sa.text( "SELECT COUNT(*) FROM information_schema.columns " "WHERE table_name = :table AND column_name = :column" ), {"table": table, "column": column}, ) return result.scalar() > 0 def upgrade() -> None: if not _column_exists("users", "admin_status"): op.add_column("users", sa.Column("admin_status", sa.String(50), nullable=True)) if not _column_exists("users", "admin_remarks"): op.add_column("users", sa.Column("admin_remarks", sa.Text(), nullable=True)) def downgrade() -> None: op.drop_column("users", "admin_remarks") op.drop_column("users", "admin_status")