【问题标题】:Establish external database connection in production on Heroku在 Heroku 的生产环境中建立外部数据库连接
【发布时间】:2015-07-03 02:49:11
【问题描述】:

我正在尝试与 Heroku 上的辅助外部数据库建立连接(这是在 AWS 上运行的 PostgreSQL 数据库)。我正在努力寻找最简单和/或最好的方法来做到这一点。

我尝试在部署到 Heroku 期间使用 Capistrano 任务复制 database.yml 文件:

after "deploy:update_code","deploy:config_symlink"

namespace :deploy do

  task :config_symlink do
    run "cp #{shared_path}/shared/config/database.yml #{release_path}/config/database.yml"
  end
end

我尝试通过 Heroku config vars 建立连接:

class Pgdb < ActiveRecord::Base.establish_connection(
    :adapter => ENV['PG_ADAPTER'],
    :database => ENV['PG_DB'],
    :username => ENV['PG_USER'],
    :password => ENV['PG_PW'],
    :host => ENV['PG_HOST']
  )

  self.abstract_class = true
  self.table_name = 'test'

  def self.getCardInfo(card_name)
    get = connection.query("SELECT * FROM test)
    get
  end
end

我找不到任何有意义的文档或确切地告诉我如何执行此操作。我不知道在上述尝试中我是否接近或远离。我正在寻找解决上述尝试的任何解决方案或解决此问题的任何其他解决方案。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3 heroku capistrano


【解决方案1】:

您可以将heroku configdatabase_url 更改为如下所示的格式:

postgres://<user>:<password>@<server>:<port>/<db_name>

例如:

heroku config:set DATABASE_URL=postgres://myusername:mypassword@111.111.111.11:5542/myproject_production

只要确保防火墙允许外部连接到 RDS。

【讨论】:

  • 这不是我的主数据库的设置吗?这是我要连接的发送艺术数据库。
  • 有什么方法可以将第二组凭据添加到heroku config
猜你喜欢
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 2015-10-08
  • 2018-08-25
  • 2021-09-17
相关资源
最近更新 更多