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



我最近执行了flask db migrate,并在两者之间遇到了异常(详细信息)。迁移仅部分完成。

我做了什么

迁移如下所示:

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.这奏效了,但现在所有数据都丢失了(还不错,这是一个开发环境)。

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

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

最新更新