supplied rails postgres password fe_sendauth connectionbad ruby-on-rails postgresql

ruby-on-rails - connectionbad - fe_sendauth no password supplied postgres rails



Rails+Postgres fe_sendauth: sin contraseƱa (4)

Hola, estoy tratando de conectar postgresql a mi proyecto de rieles. Estoy aprendiendo a probar, pero mis pruebas no se están ejecutando debido a un error postgresql sobre tener una contraseña incorrecta:

Edmunds-MacBook-Pro:langexchange edmundmai$ rake test:units rake aborted! fe_sendauth: no password supplied

Ya he leído y mi archivo pg_hba.conf originalmente era así:

# 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 trust # Allow replication connections from localhost, by a user with the # replication privilege. #local replication edmundmai

Aquí está mi archivo database.yml en mi proyecto de rieles

default: &default adapter: postgresql encoding: utf8 pool: 5 username: edmundmai password: development: <<: *default database: project_development test: <<: *default database: project_test production: <<: *default database: project_production

¿Alguien sabe cómo puedo arreglar esto? Podemos chatear si es más fácil.


Asegúrese de haber definido tanto RAILS_ENV como RACK_ENV en su servidor de alojamiento de producción. Tuve un problema similar en el que todo funcionaba, excepto el rake y la solución era agregar RACK_ENV = producción a mi entorno. RAILS_ENV ya estaba configurado para producción.

export RACK_ENV=production

bundle exec rake db:version

Deberías ver algunos resultados como:

Current version: 20121126151935

Solución: asegúrese de que su aplicación Rails tenga acceso a las variables de entorno RAILS_ENV y RACK_ENV. Además, asegúrese de que ambos tengan el mismo valor.


En su máquina local, en las secciones de test y development del archivo database.yml , debe cambiar el username de username a su username de username registrado. El generador de rieles hace que sea el mismo que su nombre de aplicación y eso no funcionará. La sección de production dependerá de su configuración de producción. Si usas heroku no necesitas cambiar nada allí.


Primero debes cambiar:

local all all trust

a:

local all all md5

Luego, debe crear un super_user en PostgreSQL con username y password , y luego agregar el username y la password del nuevo usuario a su archivo database.yml .

Para crear un nuevo super_user , abra Pg Admin III y haga clic derecho en los Login Roles para crear un nuevo superusuario.


Solo necesita crear el usuario / contraseña y el esquema (db) en postgres con pgadmin y poner usuario / contraseña en database.yml. Cuando intenté crear una base de datos con rake db: create en la carpeta del proyecto de los rieles actuales, falló y se me ocurrió que el error no se podía crear para el adaptador postgreSQL. Después de eso, creé el esquema para el proyecto de rieles con pgadmin, todo está bien sin ningún cambio en pg_hba.conf.