我最近执行了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
。那行得通,但是现在所有数据都丢失了(还不错,这是一个开发环境)。
在迁移仅部分进行之后,我应该怎么做才能不从数据库中删除所有数据?
答案 0 :(得分:0)
在修复了迁移脚本中的错误之后,可以注释掉upgrade()
函数中在错误发生之前已经应用的操作。然后再次运行升级,以便执行剩余的操作。完全应用迁移脚本后,请不要忘记注释!