2010-01-30 21 views
29

He pedido una anterior question que no recibió ninguna respuesta.Cómo conectarse a postgresql usando la url

Básicamente recibo un error invalid database url cuando intento hacer heroku db:push.

Pensé que podía intentar proporcionar explícitamente la URL de la base de datos.

me trataron:

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

Pero que dio error:

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

¿Cuál es el formato para proporcionar nombre de usuario y contraseña?

Respuesta

47

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

+0

¿qué ocurre si su usuario de db local no tiene contraseña? – mkirk

+3

tan sólo reduce la contraseña, es decir, 'db empujar postgres: // usuario @ localhost/myrailsdb' –

+1

Si no se proporciona la contraseña, esto le dará un error de No se pudo conectar a la base de datos: Sequel :: DatabaseConnectionError -> PGError fe_sendauth : no se proporcionó ninguna contraseña – user181677

5

Edite su archivo de configuración postgresql (pg_hba.conf) y cambie el método de tipo 'host' a 'trust'. Pero ten en cuenta que esto no es seguro.

# 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 

reiniciar su servidor PostgreSQL y volver a ejecutar el comando

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

Aquí está la referencia a mi respuesta: https://stackoverflow.com/a/7667344/181677

+0

¿dónde se encuentra el archivo pg_hba.conf? – kibaekr

+0

en realidad, lo encontré. para ubuntu, Debian/Ubuntu: /etc/postgresql/9.0/main/pg_hba.conf – kibaekr

8

es como se hace en un script de Ruby Aquí:

# 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

¿Cuáles son sus importaciones/requisitos? – Nick

+0

requieren 'uri' uy – Nick

1

Heroku cli ha cambiado el comando.

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