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.