Flask SqlAlchemy+;Alembic-如何修复模式差异
我刚刚将我的Flask应用程序推到我的登台环境,我注意到现在两个Postgres数据库之间存在差异。我的暂存数据库在Flask SqlAlchemy+;Alembic-如何修复模式差异,flask,flask-sqlalchemy,alembic,Flask,Flask Sqlalchemy,Alembic,我刚刚将我的Flask应用程序推到我的登台环境,我注意到现在两个Postgres数据库之间存在差异。我的暂存数据库在instance\u tags表中有一个id列,而我的本地数据库没有 三次迁移之前,我添加了一个id列,然后在models.py文件中将其删除。当它没有从我的数据库中删除时,我最终手动删除了它。我知道,这可能是件坏事!无论如何,我的迁移文件看起来像 def upgrade(): # ### commands auto generated by Alembic - pleas
instance\u tags
表中有一个id
列,而我的本地数据库没有
三次迁移之前,我添加了一个id
列,然后在models.py文件中将其删除。当它没有从我的数据库中删除时,我最终手动删除了它。我知道,这可能是件坏事!无论如何,我的迁移文件看起来像
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('instance_tags',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('instance_id', sa.String(length=30), nullable=False),
sa.Column('tag_group', sa.String(length=50), nullable=True),
sa.Column('tag', sa.String(length=50), nullable=True),
sa.PrimaryKeyConstraint('id', 'instance_id', name=op.f('pk_instance_tags'))
)
删除id
列的最佳方法是什么
提前感谢您的帮助。听起来您需要的是
谢谢你的回复。我熟悉这个命令。但是,如何生成此命令或将此命令放在何处?如果alembic尚未自动生成此命令,则必须手动将其添加到
升级()
(以及相应的添加列(…)
到降级()
。alembic的自动生成非常依赖于其配置,并不是一个完美的“银弹”。因此,建议在数据库上运行自动生成的迁移之前,检查这些迁移,并根据需要进行手动修改。
op.drop_column('instance_tags', 'id')