【问题标题】:Production entry for rails database.yml file on HerokuHeroku 上 rails database.yml 文件的生产条目
【发布时间】:2013-11-19 09:42:30
【问题描述】:

只查看我的 Rails 4 应用程序的 database.yml 文件,发现生产数据库没有任何设置 - 只有测试和开发数据库。

我实际上没有任何问题,但想通过发布此问题来避免其他潜在问题。

我在本地使用 PG 数据库,我也使用 PG 数据库在 Heroku 上托管我的应用程序。

我是否应该在生产数据库文件的 yml 中进行一些设置,因为我真的不确定?

【问题讨论】:

    标签: ruby-on-rails heroku ruby-on-rails-4


    【解决方案1】:

    以上答案对于 Heroku 上的 Rails 4.x 不再有效。 Heroku 不再覆盖你的 database.yml。您需要在 config/database.yml 文件中添加以下条目:

    production:
       url: <%= ENV['DATABASE_URL'] %>
    

    【讨论】:

    • 对于 Heroku 上的 Rails 4.1+,更精确一点。
    【解决方案2】:

    如果您在 Heroku 上托管您的应用程序并使用 Heroku Postgres DB,则您的 database.yml 中不需要生产条目。

    Heroku 将用使用来自 heroku:config 的 DATABASE_URL 的数据库完全替换您的 database.yml。

    所以不,对于 Heroku 托管的应用程序,您不需要在 database.yml 中添加生产条目。

    【讨论】:

      【解决方案3】:

      您在 database.yml 中放置的任何内容都将在生产部署期间被 Heroku 覆盖,因为它使用自己的应用程序配置来有效地编写新配置。

      https://devcenter.heroku.com/articles/ruby-support#build-behavior

      除非需要将database.yml部署到其他环境,否则可以将其包含在gitignore中

      【讨论】:

      • 实际上正在尝试运行此命令 RAILS_ENV=production bundle exec rake assets:precompile,因为我有一个不会更新但出现错误的图像 - 认为这可能与没有生产设置有关。
      • 好吧,在那里有一个生产条目并没有什么坏处,只需要一些假用户和密码,以防你系统中的任何东西想知道生产系统也是 postgres,但是一个链接对我来说,预编译问题听起来不太可能。我认为 Gemfile 应该更有影响力。
      • 如果其他人想从本地控制台连接到 heroku 生产数据库,这是我找到的获得正确配置设置的最简单方法。 heroku run rails runner 'puts ActiveRecord::Base.configurations.to_yam'
      猜你喜欢
      • 1970-01-01
      • 2018-06-16
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 2016-04-28
      相关资源
      最近更新 更多