2012-07-08 21 views
7

Ruby (Rails değil) ve PostgreSQL veritabanını kullanıyorum. Heroku'ya kurmaya çalışıyorum ama uygulamaya başladığımda sorun yaşıyorum. Uygulamayı yerel olarak çalıştırmak iyi çalışıyor.Ruby kullanarak Heroku'daki PostgreSQL veritabanına bağlanamıyor - ana makine adını çeviremedi

Benim yerel .env benziyor:

postgres://DATABASE_URL=localhost 

Ve Yakut veritabanı görünüyor bağlanmak bağlanmak gibi:

@@db = PGconn.open(:hostaddr => ENV['DATABASE_URL'], :dbname => '(dbname)', :password => '(password)') 

ben uygulama çöker o satırda Heroku için itin ve Bu hatayı günlüğe yazar:

could not translate host name "postgres://(my heroku db address)" to address: Name or service not known (PG::Error) 

Veritabanı adresiile eşleşiyor Benim heroku:config içinde. Paylaşılan bir veritabanı kullanıyorum.

:host => ENV['DATABASE_URL'] (:hostaddr'un aksine) kullanmayı denedim, ancak aynı sonucu elde ettim. Sanırım eksik bir şey var ama iyi bir fikrim yoktu.

+0

Bir kullanıcı adı ve parola içerdiğinden heroku db adresini göndermekten çekiniyorum. Bu postgres biçimindedir: // (foo) @ (bar) .compute-1.amazonaws.com/ddnhsdgpcy –

cevap

4

Heroku en Devcenter artık bu eklemeyi görünmüyor bakın:

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) 

Nezaket Grio.

İlgili konular