我使用 Alembic 作为迁移工具,并在已更新的数据库上启动以下伪脚本(Alembic 没有修订条目,数据库架构是最新的)。
revision = '1067fd2d11c8'
down_revision = None
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column('box', sa.Column('has_data', sa.Boolean, server_default='0'))
def downgrade():
pass
它只在 PostgreSQL 后面给我以下错误(对 MySQL 来说一切都很好):
INFO [alembic.migration] Context impl PostgresqlImpl.
INFO [alembic.migration] Will assume transactional DDL.
INFO [root] (ProgrammingError) ERREUR: la colonne « has_data » de la relation « box » existe déjà
最后一行表示该列has_data
已经存在。
我想检查该列之前是否存在op.add_column
。