Failing to access environment variables within `database.yml` file

У меня есть следующий раздел разработки в моем development.yml файле:

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

Когда я открываю консоль rails через bundle exec rails console и ввожу ENV['APP_USER_POSTGRES_PASSWORD'], я получаю пароль БД, который я указал в своем локальном профиле. Однако, когда я запускаю свой сервер rails, он не может подключиться к БД, выдавая ошибку

PGError FATAL:  password authentication failed for user "app_user"

Раньше это работало, когда я вводил пароль БД открытым текстом, а не пытался получить доступ к нему через ENV['...'], но по очевидным причинам я хочу, чтобы фактический пароль не содержался в этом файле полностью (и, следовательно, в репозитории кода), но при этом мог фиксировать другие, небезопасные изменения в файле database.yml.

Есть ли что-то особенное в синтаксисе, чего я не понимаю, или переменные окружения по какой-то причине недоступны при загрузке файла database.yml?

64
задан jefflunt 12 February 2013 в 15:42
поделиться