我正在尝试从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上有同样的问题,因为他的问题是偶然的,而我的问题不是。
由于
答案 0 :(得分:1)
这是一个代码问题,它应该是:host而不是:hostaddr