【发布时间】:2012-10-16 15:25:40
【问题描述】:
我有一个在 heroku 上运行的 django 应用程序。我想在依赖于它们的任何代码上线之前运行我的 South 迁移。在快速查看当前推荐的做法后,我发现了两个建议的迁移程序。
建议 1
- 提交并推送所有更改
- 为每个应用运行
heroku run python manage.py migrate <APP_NAME>
在步骤 1 和步骤 2 之间有一段时间,我的代码假设最新架构已到位,但数据库尚未更新。
建议 2
- 提交并推送所有数据库更改。
- 迁移。
- 推送所有代码更改。
这解决了之前的问题,但增加了部署过程的复杂性,总有一天我会搞砸的。
可能的解决方案?
似乎我可以避免建议 1 中的问题并且通过使用自定义 post_compile 脚本将我的部署保持在一个步骤中
为我的每个应用调用python $MANAGE_FILE migrate <APP_NAME>(按依赖顺序)。
我在任何地方都没有看到这个推荐,所以我的问题是双重的。您能看出这种方法有什么潜在的问题吗?您有更好的方法吗?
【问题讨论】:
标签: django heroku django-south