![](/img/trans.png)
[英]Remote connect to Heroku pg database error: could not translate host name to address
[英]Can't connect to PostgreSQL database on Heroku using Ruby - could not translate host name
我正在使用Ruby(而不是Rails)並連接PostgreSQL數據庫。 我一直試圖在Heroku上設置,但是我在啟動應用程序時遇到了問題。 在本地運行應用程序正常。
我的本地.env看起來像:
postgres://DATABASE_URL=localhost
並且連接到數據庫的Ruby連接如下所示:
@@db = PGconn.open(:hostaddr => ENV['DATABASE_URL'], :dbname => '(dbname)', :password => '(password)')
當我推送到Heroku時,應用程序在該行崩潰,並將此錯誤寫入日志:
could not translate host name "postgres://(my heroku db address)" to address: Name or service not known (PG::Error)
那里的數據庫地址與我的heroku:config
中的DATABASE_URL
相匹配。 我正在使用共享數據庫。
我嘗試使用:host => ENV['DATABASE_URL']
(而不是:hostaddr
),但結果相同。 我猜我有一些簡單的東西,但是我沒有任何好的想法。
您需要解析DATABASE_URL
的特定部分。 請參閱https://devcenter.heroku.com/articles/rack#database_access
Heroku的Devcenter似乎不再包含這個,所以這里是如何手動拆分:
db_parts = ENV['DATABASE_URL'].split(/\/|:|@/)
username = db_parts[3]
password = db_parts[4]
host = db_parts[5]
db = db_parts[7]
conn = PGconn.open(:host => host, :dbname => db, :user=> username, :password=> password)
禮貌Grio 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.