65 votes

Impossible d'accéder aux variables d'environnement dans le fichier `database.yml`

J'ai de la suite de développement de la section de mon development.yml le fichier:

development:
  adapter: postgresql
  host: localhost
  database: testtb
  username: app_user
  password: ENV['APP_USER_POSTGRES_PASSWORD']     <= Troublesome line

Quand j'ouvre la console rails via bundle exec rails console et tapez ENV['APP_USER_POSTGRES_PASSWORD'] je serai de retour la DB mot de passe j'ai précisé dans mon profil local. Cependant, lorsque je démarre mon serveur rails, il ne peut pas se connecter à la DB, faute de quoi

PGError FATAL:  password authentication failed for user "app_user"

Cela fonctionnait quand j'ai eu l'DB mot de passe effectivement tapé en texte clair, plutôt que d'essayer d'y accéder via ENV['...'], mais pour des raisons évidentes, je veux garder le mot de passe de ce fichier (et donc hors du référentiel de code) tout en étant capable de commettre les autres, les non-obtenir des changements à l' database.yml le fichier.

Est-il quelque chose de spécial à propos de la syntaxe, je suis absent, ou sont les variables d'environnement pour une raison quelconque ne sont pas disponibles lorsque l' database.yml le fichier est chargé?

165voto

jefflunt Points 20244

Ah, enfin trouvé la solution simple - il accepte Ruby intégré:

 password: <%= ENV['APP_USER_POSTGRES_PASSWORD'] %>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X