如何在ruby脚本中获取Heroku的数据库信息?

时间:2014-03-18 03:06:06

标签: ruby heroku rake

我创建了一个托管在Heroku上的rails应用程序。现在我想上传一个将填充我的数据库的ruby脚本。 此脚本已存在且正在使用

PGconn.connect( :hostaddr=>"127.0.0.1", :port=>5432, :dbname=>"myDB", :user=>"MyUser", :password=>'MyPass');

这显然不适用于Heroku。

我尝试使用:

Rails.configuration.database_configuration

但是我得到了

  

未初始化的常量Rails

如何获取信息,以便连接到Heroku DB?有没有办法在我的localhost和Heroku上制作相同的代码? (ps:我正在使用foreman和.ENV文件,如果有帮助的话)

编辑: 我采取的解决方案:

require 'yaml'
require 'erb'    
config = YAML.load(ERB.new(File.read(File.join("config","database.yml"))).result)

在配置中,我拥有执行数据库访问所需的所有信息。

1 个答案:

答案 0 :(得分:2)

为什么不只是访问ENV['DATABASE_URL']并将其分解为组成部分?要了解如何完成此操作,如果您执行heroku run bash并执行cat config\database.yml,您将看到Heroku如何做到这一点。

如果你通过foreman run <Scriptname>执行,那么确保本地也能正常工作,然后执行它并加载.env的内容。