"""Add user phone field Revision ID: 029 Revises: 028 Create Date: 2026-07-05 补录用户手机号字段。生产数据库已手动添加过该字段, 因此 upgrade 做幂等检查。 """ import sqlalchemy as sa from alembic import context, op revision = "029" down_revision = "028" 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", "phone"): op.add_column("users", sa.Column("phone", sa.String(20), nullable=True)) def downgrade() -> None: op.drop_column("users", "phone")