heroku db: pull falla debido a la falta de contraseña cuando no he especificado una contraseña

Cuando ejecuto heroku db: pull, encuentra mi db dev local en:

postgres://127.0.0.1/myapp_development?encoding=utf8 

Una vez que confirmo, sin embargo, falla con:

 Sequel::DatabaseConnectionError -> PGError: fe_sendauth: no password supplied 

Intenté ejecutar el pull con el db local especificado, por ejemplo,

 heroku db:pull postgres://root:@localhost/db_name 

lo que da el mismo error sin contraseña suministrada.

Pensé que podría necesitar cambiar root: to myname: porque ese es el usuario al que le concedí los derechos de superusuario cuando configuro postgres pero no root: or myname: funciona

Mi archivo database.yml tiene nombre de usuario: y contraseña: en blanco para todas las bases de datos especificadas.

Desde la línea de comandos como myname @ ubuntu puedo escribir psql myapp_development y conectarme bien y ejecutar selecciones.

¿Que me estoy perdiendo aqui?

¿Está relacionado con mi configuración pg_hba.conf? Eché un vistazo dentro de eso y dice:

 # Database administrative login by UNIX sockets local all postgres ident # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 

¿Debería usarse ‘confianza’ allí? Y si es así, si edito ese archivo, ¿necesito reiniciar Postgres? Y si ‘confianza’ es necesaria, ¿cómo es posible que los Rails y las herramientas de la línea de comandos de psql funcionen sin contraseñas cuando inicie sesión como usuario de mi nombre?

¡Gracias!

La trust método de autenticación puede hacer el truco, pero como usted sabe, esto no es seguro.
Después de editar pg_hba.conf , no tienes que reiniciar. Una reload es suficiente (citando el manual ):

El archivo pg_hba.conf se lee en el inicio y cuando el proceso del servidor principal recibe una señal SIGHUP. Si edita el archivo en un sistema activo, deberá pg_ctl señal al administrador de correo (con pg_ctl reload o kill -HUP ) para que vuelva a leer el archivo.

 pg_ctl reload 

Ver el fino manual . Es posible que necesites el manual para la versión 8.3 . La base de datos compartida en heroku actualmente se ejecuta en PostgreSQL 8.3. (Además, dudo que tengas acceso a pg_ctl en heroku).

Sé consciente de esto :

Si no se ha configurado una contraseña para un usuario, la contraseña almacenada es nula y la autenticación de la contraseña siempre fallará para ese usuario.

Énfasis mío. Es posible que pueda iniciar sesión localmente, ya que los métodos de ident y los peer permiten. ¡Pero para su propósito usted puede necesitar una contraseña!