从 github 部署更改的模型时,如何在 heroku 上运行 makemigrations/migrate?
Posted
技术标签:
【中文标题】从 github 部署更改的模型时,如何在 heroku 上运行 makemigrations/migrate?【英文标题】:What to do to run makemigrations/migrate on heroku when deploying changed models from github? 【发布时间】:2017-09-20 05:00:02 【问题描述】:我已将应用程序从 github 存储库部署到我作为合作者的客户的 heroku 帐户,但这次我必须添加一些新模型。
但是我意识到,当我从 github 部署我的更改时,heroku 不会运行 makemigrations 和 migrate。
我在 *** 上阅读了一些答案,并理解它应该是这样的。
但是我的问题是我该怎么办?将变更模型部署到 heroku 应用程序的最佳实践是什么? (我认为它不会再次删除和重新创建我的应用程序,因为客户已经在那里拥有数据。)
(我可以运行 makemigrations 并手动从 bash 迁移,但是当我有 30 多个部署时,这很痛苦)
【问题讨论】:
这里已经说过很多次了,你在本地运行 makemigrations 并提交结果,然后在 Heroku 上运行 migrate。 (我不明白你提到 30 次部署。) 谢谢@Daniel Roseman。 30 个部署是指我必须将相同的代码部署到 30 个不同的云帐户。这意味着我必须为他们每个人运行迁移。 这似乎是一件奇怪的事情。您确定不想要单个部署,扩展到 30 dynos? 计划就是这样。欢迎任何反馈。理想情况下最终会超过 30 个。欢迎任何反馈。 ***.com/questions/42872949/… 【参考方案1】:查看 Heroku 上名为“发布阶段”的新功能:https://devcenter.heroku.com/articles/release-phase 它允许您在部署期间运行迁移。只需将您想要的任何命令添加到您的 Procfile 中,如下所示:
web: your_web_command
release: python manage.py migrate
release
命令将在您的应用构建完成之后、启动之前运行。
【讨论】:
以上是关于从 github 部署更改的模型时,如何在 heroku 上运行 makemigrations/migrate?的主要内容,如果未能解决你的问题,请参考以下文章