2010-01-30 9 views
29

Avevo chiesto un precedente question che non ha ricevuto alcuna risposta.Come connettersi a postgresql utilizzando l'url

Fondamentalmente ottengo un errore invalid database url quando provo a fare heroku db:push.

Ho pensato di provare a fornire esplicitamente l'url del database.

ho provato:

heroku db:push postgres://[email protected]/myrailsdb

Ma che ha dato errore:

Failed to connect to database: 
    Sequel::DatabaseConnectionError -> PGError fe_sendauth: no password supplied 

Qual è il formato per fornire username e password?

risposta

47

Prova heroku db:push postgres://username:[email protected]/myrailsdb.

+0

E se il tuo utente db locale non ha password? – mkirk

+3

Basta inserire la password, vale a dire 'db spingere postgres: // nomeutente @ localhost/myrailsdb' –

+1

Se nessuna password viene fornita, questo darà un errore di Impossibile connettersi al database: Sequel :: DatabaseConnectionError -> PGError fe_sendauth : nessuna password fornita – user181677

5

Modifica il file di configurazione postgresql (pg_hba.conf) e modifica il metodo di tipo "host" su "trust". Ma attenzione che questo non è sicuro.

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          trust 
# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     md5 

Riavviare il server PostgreSQL e ri-eseguire il comando

$ heroku db:push postgres://[email protected]/myrailsdb 

Ecco il riferimento alla mia risposta: https://stackoverflow.com/a/7667344/181677

+0

dove si trova il file pg_hba.conf? – kibaekr

+0

in realtà, trovato. per ubuntu, Debian/Ubuntu: /etc/postgresql/9.0/main/pg_hba.conf – kibaekr

8

Ecco come farlo in uno script di Ruby:

# Connect to database. 
uri = URI.parse(ENV['DATABASE_URL']) 
postgres = PG.connect(uri.hostname, uri.port, nil, nil, uri.path[1..-1], uri.user, uri.password) 

# List all tables. 
tables = postgres.exec('SELECT * FROM pg_catalog.pg_tables') 
tables.num_tuples.times do |i| 
    p tables[i] 
end 
+0

Quali sono le vostre importazioni/richieste? – Nick

+0

richiedono 'uri' oops – Nick

1

Heroku cli ha cambiato il comando.

heroku pg:push postgres://username:[email protected]/myrailsdb