我使用 alembic revision --autogenerate
创建了一个迁移,使用 alembic upgrade head
将其应用于我的开发数据库,然后意识到这并不是我想要的。
我该如何还原此迁移以便我可以进行微调并再次尝试?
我使用 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
alembic downgrade -1
命令时,出现了FAILED: Relative revision -1 didn't produce 1 migrations
的错误提示。 - Santosh Kumar