我用
alembic revision --autogenerate
创建了一个迁移,用 alembic upgrade head
将其应用到我的开发数据库,然后意识到这并不完全是我想要的。
如何恢复迁移以便我可以调整它并重试?
alembic downgrade
以及 相对迁移标识符 为 -1:
alembic downgrade -1
这将运行最新版本的
downgrade()
方法并更新 alembic_version
表以指示您现在所在的版本。
如果您需要返回多个迁移,请运行
alembic history
要查看项目中所有迁移的列表(从最新到最旧),然后复制并粘贴您要返回的迁移的标识符:
alembic downgrade 8ac14e223d1e
目前没有命令可以从版本目录中删除迁移,因此如果您想完全清除错误迁移的所有痕迹,则需要手动删除版本文件(如
4c009570237e_add_widget_table.py
)。
使用alembic时要小心
考虑下一次修订:
aaa <-- head
bbb
ccc
ddd <-- base
如果您执行
alembic upgrade head
,您将进行aaa
修订。
如果您执行
alembic downgrade base
,您将进行ddd
修订。
如果您执行多次
alembic downgrade -1
,最终您可以从aaa
转到ddd
修订。同上alembic upgrade +1
如果您只想在
aaa
和 bbb
修订版之间进行迭代,我建议使用:
升级:
alembic upgrade head
降级
alembic downgrade head-1