【问题标题】:What to do to run makemigrations/migrate on heroku when deploying changed models from github?从 github 部署更改的模型时,如何在 heroku 上运行 makemigrations/migrate?
【发布时间】:2017-09-20 05:00:02
【问题描述】:

我已将应用程序从 github 存储库部署到我作为合作者的客户的 heroku 帐户,但这次我必须添加一些新模型。

但是我意识到,当我从 github 部署我的更改时,heroku 不会运行 makemigrations 和 migrate。

我在 stackoverflow 上阅读了一些答案,并理解它应该是这样的。

但是我的问题是我该怎么办?将变更模型部署到 heroku 应用程序的最佳实践是什么? (我认为它不会再次删除和重新创建我的应用程序,因为客户已经在那里拥有数据。)

(我可以运行 makemigrations 并手动从 bash 迁移,但是当我有 30 多个部署时,这很痛苦)

【问题讨论】:

  • 这里已经说过很多次了,你在本地运行 makemigrations 并提交结果,然后在 Heroku 上运行 migrate。 (我不明白你提到 30 次部署。)
  • 谢谢@Daniel Roseman。 30 个部署是指我必须将相同的代码部署到 30 个不同的云帐户。这意味着我必须为他们每个人运行迁移。
  • 这似乎是一件奇怪的事情。您确定不想要单个部署,扩展到 30 dynos?
  • 计划就是这样。欢迎任何反馈。理想情况下最终会超过 30 个。欢迎任何反馈。 stackoverflow.com/questions/42872949/…

标签: django heroku django-models django-migrations


【解决方案1】:

查看 Heroku 上名为“发布阶段”的新功能:https://devcenter.heroku.com/articles/release-phase 它允许您在部署期间运行迁移。只需将您想要的任何命令添加到您的 Procfile 中,如下所示:

web: your_web_command
release: python manage.py migrate

release 命令将在您的应用构建完成之后、启动之前运行。

【讨论】:

    猜你喜欢
    • 2017-08-22
    • 2016-07-24
    • 1970-01-01
    • 2013-10-26
    • 2015-10-20
    • 2020-08-22
    • 1970-01-01
    • 2018-07-14
    • 2020-07-10
    相关资源
    最近更新 更多