Próbuję połączyć się z Postgres Heroku za pomocą Go. Wszystko działa dobrze lokalnie.Połączenie odmówiono z Go + Postgres na Heroku
Błąd, który otrzymuję na Heroku to dial tcp 127.0.0.1:5432: connection refused
.
Potwierdziłem moją zdolność do połączenia się z bazą danych za pośrednictwem psql na linii poleceń heroku i potwierdziłem, że konfiguracja adresu URL bazy danych jest poprawna. Kod jest wystarczająco jasny, więc zastanawiam się, czy istnieje problem niższego poziomu.
Kod jest dosyć prosta:
import (
"database/sql"
"github.com/coopernurse/gorp"
_ "github.com/lib/pq"
"os"
)
func openDb() *sql.DB {
connection := os.Getenv("DATABASE_URL")
db, err := sql.Open("postgres", connection)
if err != nil {
log.Println(err)
}
return db
}
... i jestem importowania github.com/lib/pq. Wersja Go to 1.1.2.
dziwne ... nigdy nie miałem bałagan z 'sslmode = require' i Zrobiłem coś bardzo podobnego (również używając 'lib/pq'). Niedopuszczalne jest również dołączanie szczegółów połączenia DB do kodu. Heroku umożliwia ustawienie zmiennych środowiskowych, do których twój kod może uzyskać dostęp za pomocą 'os.Getenv()'. Powodzenia! :) – weberc2