Ich habe einen neuen Benutzer 'deploy' für die Datenbank mit einem bestimmten Passwort erstellt und dann Datenbank 'deploy_production' erstellt.Postgresql: "kein Passwort angegeben" Fehler in Schienen, obwohl Login in PSQL ist OK
In meiner Rails-Anwendung, Datenbank konfiguriert ist, wie folgt:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
production:
<<: *default
database: deploy_production
username: deploy
password: <%= ENV['DATABASE_PASSWORD'] %>
Db Passwort wird in der Konsole Trog richtig eingestellt:
export DATABASE_PASSWORD=actual_password
Passwort korrekt ist, weil ich in der Lage bin melden Sie sich mit ihm zu psql:
psql -d deploy_production -U deploy
Aber wenn ich laufen Rails-Anwendung Thin Verwendung in der Produktion Umwelt, ein nd die Anfrage kommt, folgende Fehlermeldung angezeigt:
PG::ConnectionBad (fe_sendauth: no password supplied):
activerecord (4.2.3) lib/active_record/connection_adapters/postgresql_adapter.rb:655:in `initialize'
...
Was interessant ist - Befehle RAILS_ENV=production rake db:setup
und RAILS_ENV=production rake db:migrate
Arbeit perfekt.
Das ist mein pg_hba.conf:
local all postgres peer
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Haben Sie Hinweise, was könnte das Problem verursachen?
Haben Sie versucht, das Passwort in der Konfigurationsdatei setzen, direkt, wenn seine eine Umgebung Problem zu überprüfen? – Gary
könnte es sein, dass Umgebungsvariable nicht übergeben wird. – GorillaApe
Sie haben Recht, es ist ein Problem mit der Umgebung var. Wie man es repariert? Ich möchte das Passwort nicht direkt in der Datei speichern ... –