如何撤消 Django 中未完成迁移的更改

How to undo changes from unfinished migration in django

我 运行 makemigrations 然后 运行 在 django 项目上迁移。但由于一些并发症,迁移无法完成并在两者之间停止。

将数据库恢复到早期状态或撤消未完成迁移的更改的最简单方法是什么。

我正在使用 django 1.10,但我认为这同样适用于 1.6 之后的 django 版本

正如 Alan Avalos 在评论中所说,我们无法回滚未完成的迁移。正如我在另一个关于迁移的回答 django revert last migration 中发布的那样,我不得不手动删除所有更改,这花费了很多时间,因为它应该非常小心地完成。

想法是您必须检查哪些特定的迁移 运行 以及哪些特定的迁移导致了错误。保留所有已经应用的。通过进入 mysql 删除未应用迁移的更改,然后一旦完成,找出导致迁移失败的根本原因并纠正该问题。

删除未应用的迁移文件,重新运行进行迁移和迁移。