【发布时间】:2020-06-10 03:49:27
【问题描述】:
我在 Heroku 上有一个正在运行的 Django 应用程序,迁移在发布时自动运行。虽然在大多数情况下这可以正常工作,但有时在以下情况下会出现问题:
- 在给定版本中有多个迁移(它们可以在不同的应用中)
- 有些迁移会失败,但不是第一次迁移
在这种情况下,manage.py migrate 将失败,因此 Heroku 不会完成发布,也不会部署新代码。这意味着代码在旧版本中,而数据库处于“介于新旧之间”的状态。
如果 Heroku 上的 release 命令失败,是否有一种简单的方法可以自动运行 Django 运行反向迁移?
事务在这里没有帮助,因为可能有不止一个迁移(多个应用程序)并且 Django 在单独的事务中运行每个迁移。
【问题讨论】:
-
你看过devcenter.heroku.com/articles/…吗?据我所知,似乎没有“恢复”迁移的选项。
-
我不相信“没有办法做到这一点”,最坏的情况是我可以编写自己的迁移命令,但我正在寻找一些更简单的方法。
-
抱歉,我刚刚从谷歌快速搜索中获取了第一个相关结果。
标签: django heroku django-migrations