为什么在Heroku仪表板上手动部署没有" rake db:migrate"自动?

时间:2017-03-05 07:03:43

标签: ruby-on-rails heroku

我没有使用Heroku一段时间。我发现Heroku改变了一些东西,所以想再试一次。

但在点击" Deploy Branch"按钮,我的应用程序仍无法正常工作。

所以我检查构建日志并意识到Heroku似乎没有执行db:migrate命令。

但它确实做了资产:编译命令。而且我没有找到任何地方点击进行db:migrate的事情。

所以我必须使用命令行工具,对吧?

1 个答案:

答案 0 :(得分:5)

这是Heroku的一个众所周知的限制。它不会开箱即用地运行您的迁移。但是,您可以通过以下几种方式自动化它:

  1. 您可以编写一个简单的脚本,首先将新代码推送到Heroku git存储库,然后运行迁移。问题是您需要在您的计算机上本地运行此脚本
  2. 您可以添加this buildpack,然后将环境变量DEPLOY_TASKS设置为db:migrate。您可以通过UI,命令行heroku config:set DEPLOY_TASKS='db:migrate'执行此操作,也可以将所有内容添加到app.json,以便它可以使用部署按钮开箱即用。
  3. 您可以release: rake db:migrate将[{1}}添加到Procfile
  4. 请记住,在部署期间迁移数据库时存在许多问题。您可以在发布阶段的文档中阅读它。