2012-07-08 19 views
7

Używam Ruby (nie Rails) i łączę bazę danych PostgreSQL. Próbowałem zainstalować na Heroku, ale mam problemy z uruchomieniem aplikacji. Uruchamianie aplikacji lokalnie działa dobrze.Nie można połączyć się z bazą danych PostgreSQL na Heroku za pomocą Ruby - nie można przetłumaczyć nazwy hosta

Mój lokalny .env wygląda następująco:

postgres://DATABASE_URL=localhost 

A Ruby połączyć się połączyć z bazą danych wygląda następująco:

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

Kiedy wciskam do Heroku awarii aplikacji na tej linii, a zapisuje ten błąd w dziennikach:

Adres bazy danych jest zgodny z DATABASE_URL w moim heroku:config. Używam udostępnionej bazy danych.

Próbowałem użyć :host => ENV['DATABASE_URL'] (w przeciwieństwie do), ale miał taki sam wynik. Zgaduję, że jest coś prostego, czego mi brakuje, ale nie miałem żadnych dobrych pomysłów.

+0

Jestem niezdecydowany, aby opublikować adres bazy danych Heroku, ponieważ zawiera on nazwę użytkownika i hasło. Jest w formacie postgres: // (foo) @ (bar) .compute-1.amazonaws.com/ddnhsdgpcy –

Odpowiedz

4

Heroku za Devcenter nie wydaje się to już tego, więc oto jak to zrobić split ręcznie:

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) 

uprzejmości Grio.

Powiązane problemy