【问题标题】:How to have Rails migrations run automatically on Heroku如何让 Rails 迁移在 Heroku 上自动运行
【发布时间】:2016-03-22 07:43:57
【问题描述】:

我有 10 多个不同的 Ruby on Rails 应用程序,我必须在其中部署相同的代码。我已将 git 存储库连接到我的 Heroku 应用程序,因此每当我推送新更改时,它都会部署在所有应用程序上。

问题在于数据库迁移步骤。我想在每次部署后自动运行迁移。自定义构建包都不起作用。有人可以帮帮我吗?我正在使用 rails 4 和 spree。

到目前为止,我已经尝试过:

  1. https://github.com/heroku/heroku-buildpack-ruby.git
  2. https://github.com/gunpowderlabs/buildpack-ruby-db-migrate.git

此解决方案不起作用。

还有其他解决方案可以在 Heroku 上自动运行 Rails 迁移吗?

【问题讨论】:

  • 日志说找不到文件iconv,你检查了吗?
  • 当我删除 buidpack 时,一切都开始正常工作。我的部署成功完成。问题是我想运行自动迁移吗?

标签: ruby-on-rails ruby heroku migration rails-migrations


【解决方案1】:

无需使用 gem 或编写脚本。 Heroku 具有“发布”阶段功能 (https://devcenter.heroku.com/articles/release-phase)。

多亏了这一点,您只需在您的 Procfile 中添加一些代码,即可自动运行 rake db:migrate 以进行所有推送:

Procfile(根应用)

release: rake db:migrate

【讨论】:

    【解决方案2】:

    您可以使用Travis-ci。设置非常简单并提供所需的功能

    【讨论】:

      【解决方案3】:

      将gem 'iconv', '~> 1.0.3' 添加到您的 gemfile 中,然后尝试它会为我工作!

      我认为这是answer的副本

      如果您正在寻找替代方案,那么您可以在 .sh 文件中编写部署脚本并像 bash 脚本一样每次运行它。

      【讨论】:

      • 原本我想在部署后在heroku上运行migration auto
      • 是的 iconv 就像一个依赖,你试过解决方案吗?它应该可以正常工作。
      • 这与迁移有什么关系?如果该 gem 以某种方式运行迁移,那么这是任何人都不应该期望或知道的副作用。所以这不应该是问题的解决方案。 @Gregdebrick 解决方案工作正常,是正确的答案
      猜你喜欢
      • 2015-09-21
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2023-04-10
      • 2020-02-03
      • 2021-09-25
      相关资源
      最近更新 更多