如何还原部分执行的迁移?

时间:2019-06-22 04:44:59

标签: alembic flask-migrate

我最近执行了flask db migrate,并且在(details)之间出现异常。迁移仅完成了一部分。

我做了什么

迁移看起来像这样:

def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    ...
    op.add_column('users', sa.Column('registered_on', sa.DateTime(), nullable=False))
    ...

“ registered_on”完成之前的所有操作。下面的一切都不是。当我再次执行flask db upgrade时,它抱怨之前的列已经存在。

接下来,我尝试了flask db downgrade,然后尝试了flask db upgrade。那行得通,但是现在所有数据都丢失了(还不错,这是一个开发环境)。

在迁移仅部分进行之后,我应该怎么做才能不从数据库中删除所有数据?

1 个答案:

答案 0 :(得分:0)

在修复了迁移脚本中的错误之后,可以注释掉upgrade()函数中在错误发生之前已经应用的操作。然后再次运行升级,以便执行剩余的操作。完全应用迁移脚本后,请不要忘记注释!