在Heroku上的生产中建立外部数据库连接

时间:2015-07-03 02:49:11

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

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

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

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配置变量建立连接:

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

我找不到任何有意义的文档或告诉我如何做到这一点。我不知道在上述尝试中我是否接近或离线。我正在寻找解决上述尝试或解决此问题的任何其他解决方案的任何解决方案。

1 个答案:

答案 0 :(得分:1)

您可以使用以下格式更改database_url的{​​{1}}:

heroku config

例如:

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

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