在ruby脚本上连接数据库时“无法转换主机名”

时间:2014-03-18 14:21:10

标签: ruby heroku

我正在尝试从ruby脚本访问数据库。目前我有这段代码:

  config = YAML.load(ERB.new(File.read(File.join("config","database.yml"))).result)
  environment = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
  return PGconn.connect( :hostaddr=>config[environment]["host"], :port=>config[environment]["port"], :dbname=>config[environment]["database"], :user=>config[environment]["username"], :password=>config[environment]["password"]);

我的database.yml如下:

发展:   适配器:postgresql   主持人:localhost   用户名:usrname   密码:密码   database:dbname   港口:5432

然后我的剧本抱怨说:

  

/app/scripts/crawler.rb:54:in`initialize':无法翻译主机   name" localhost"地址:姓名或   服务未知

我改变了#34; localhost"至127.0.0.1并且有效。

当我上传到Heroku时,我得到以下内容:

  

/app/scripts/crawler.rb:54:in`initialize':无法翻译主机   name" ec2-184-72-231-67.compute-1.amazonaws.com"地址:姓名或   服务未知

我是否需要导入一些gem才能将主机名转换为IP?我已经搜索了它,但没有太多信息,我发现的唯一的事情是这个相似但不一样的问题:Occasional Postgres error on Heroku: could not translate host name "<pg URL>" to address: Name or service not known (PG::Error),但我不知道答案是否相同,因为我在localhost上有同样的问题,因为他的问题是偶然的,而我的问题不是。

由于

1 个答案:

答案 0 :(得分:1)

这是一个代码问题,它应该是:host而不是:hostaddr