2016-05-13 3 views
0

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?

+1

Haben Sie versucht, das Passwort in der Konfigurationsdatei setzen, direkt, wenn seine eine Umgebung Problem zu überprüfen? – Gary

+1

könnte es sein, dass Umgebungsvariable nicht übergeben wird. – GorillaApe

+0

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 ... –

Antwort

0

Sie sollten Ihre env-Variable abhängig von dem von Ihnen verwendeten Linux in der .bashrc-Datei (oder .bash_profile) einrichten.

Bashrc

Export DATABASE_PASSWORD = actual_password

+0

Hilft nicht ... Aber danke. –

Verwandte Themen