【问题标题】:How to share a second Heroku DB with multiple Heroku Rails apps如何与多个 Heroku Rails 应用共享第二个 Heroku DB
【发布时间】:2014-05-03 10:40:13
【问题描述】:

我有两个 Heroku 应用程序,一个用于暂存,一个用于生产。每个都有自己独立的主数据库。我有第二个 Heroku 数据库, 暂存和生产都需要访问它。

运行 Rails 4.1.0.rc1,当我尝试使用“建立连接”和我为辅助数据库配置了所有正确值的 URL 时,我最终连接到主数据库。之后,如果我检查 ActiveRecord::Base.configurations,我会看到添加了一个新的键/值对。键是 URL,值似乎是“生产”键的配置值的副本。

我所有的研究都表明我需要做的就是

User.establish_connection ENV['SECONDARY_DATABASE_URL']

此方法在本地运行良好,但在 Heroku 上失败。

【问题讨论】:

    标签: database heroku ruby-on-rails-4 multiple-databases


    【解决方案1】:

    这个 hack 有效,但对我来说似乎是个坏主意:

    url = ENV['MC_CONVERSION_DATABASE_URL']
    
    if url
      uri = URI url
      db_config = {
        'adapter'     => 'postgresql',
        'username'    => uri.user,
        'password'    => uri.password,
        'port'        => uri.port,
        'database'    => uri.path[1..-1], # remove leading '/'
        'host'        => uri.host
      }
    else
      # in the dev environment, use one of the configs from database.yml
      db_config = :mc_conversion
    end
    
    McUser.establish_connection db_config
    McMod.establish_connection db_config
    

    【讨论】:

      猜你喜欢
      • 2013-04-09
      • 1970-01-01
      • 2018-08-02
      • 2012-12-30
      • 2013-01-10
      • 2011-01-08
      • 2011-12-17
      • 2013-09-18
      • 1970-01-01
      相关资源
      最近更新 更多