Почему встраивание .erb не может вставить правильный пароль PostgreSQL? - PullRequest
1 голос
/ 30 марта 2012

У меня есть следующий конфиг в моем рабочем файле config/database.yml. Я заметил, что это не работает - это происходит с ошибкой аутентификации пароля postgres.

Я также заметил, что если я заменим <%= ENV['SOME_PASSWORD'] %> на действительный пароль, он будет работать нормально.

production:
  adapter: postgresql
  host: localhost
  database: some_database
  username: some_user
  password: <%= ENV['SOME_PASSWORD'] %>

Однако , я вижу это только на моем рабочем сервере Ubuntu. Эта вставка переменной окружения работает на моем устройстве OS X.

Просто любопытно, почему это так - почему это не работает в Ubuntu? Если я вхожу в интерактивный сеанс ruby ​​ на производственной коробке через irb и набираю <%= ENV['SOME_PASSWORD'] %>, он выводит пароль, как и ожидалось.

Я проверял это несколькими способами, и я уверен, что это проблема. Я просто не уверен, почему это происходит. Я использую Ruby Enterprise Edition для моего переводчика ruby ​​в обоих местах. Просто кажется странным, и мне бы очень хотелось, чтобы мой пароль полностью не отображался в моем конфигурационном файле - я просто чувствую, что мне нужно использовать немного другой синтаксис для производственного сервера, но я не уверен, что это за синтаксис может быть.

ПРИМЕЧАНИЕ : Каждая другая найденная мной статья в Интернете, посвященная проблемам аутентификации Rails postgres, в какой-то момент говорит вам изменить ваш файл pg_hba.conf на режим trust, которая не только игнорирует проблему, обходя аутентификацию, она небезопасна и не является правильным решением, если вы заботитесь о безопасности.

...