我最近执行了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()
函数中的操作。然后再次运行升级,以便执行其余操作。完全应用迁移脚本后,不要忘记取消注释!