我创建了一个托管在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)
在配置中,我拥有执行数据库访问所需的所有信息。
答案 0 :(得分:2)
为什么不只是访问ENV['DATABASE_URL']
并将其分解为组成部分?要了解如何完成此操作,如果您执行heroku run bash
并执行cat config\database.yml
,您将看到Heroku如何做到这一点。
如果你通过foreman run <Scriptname>
执行,那么确保本地也能正常工作,然后执行它并加载.env的内容。