6

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)

そこにあるデータベース アドレスはDATABASE_URL、 myの と一致しますheroku:config。共有データベースを使用しています。

:host => ENV['DATABASE_URL']( ではなく)を使用してみ:hostaddrましたが、同じ結果が得られました。欠けている単純なものがあると思いますが、良いアイデアはありませんでした。

4

2 に答える 2

7

の特定の部分を解析する必要がありDATABASE_URLます。https://devcenter.heroku.com/articles/rack#database_accessをご覧ください

于 2012-07-08T04:05:04.667 に答える
5

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)

礼儀グリオ

于 2014-02-23T11:20:43.027 に答える