0

Я пытаюсь развернуть мое приложение Rails 5 с помощью Postgres для VPS через Capistrano. Однако он продолжает терпеть неудачу, давая мне PG::ConnectionBad: FATAL: password authentication failed for user 'sys_user'.Не удается подключиться к PostgreSQL с Rails и Capistrano

Соответствующие настройки моей database.yml являются:

production: 
    <<: *default 
    database: <%= ENV['RDS_DB_NAME'] %> 
    username: <%= ENV['RDS_USERNAME'] %> 
    password: <%= ENV['RDS_PASSWORD'] %> 
    host: <%= ENV['RDS_HOSTNAME'] %> 
    port: <%= ENV['RDS_PORT'] %> 

Все эти переменные окружения были установлены в /etc/environment - это, безусловно, имеет место, потому что это собирание RDS_USERNAME как sys_user. Пароль базы данных совпадает с паролем RDS_PASSWORD. Порт, имя хоста и т. Д. Все равно.

Я в тупике. Пожалуйста помоги.

+0

У меня нет решения. Разумеется, использование 'dotenv' gem временно (с' .env.production' не проверено в управлении версиями, конечно). – mindseyeblind

ответ

0

Где работает экземпляр Postgres? Я предполагаю, что вы пытаетесь перенести приложение с Elastic Beanstalk на хост, не являющийся Amazon. Если это так, и ваш экземпляр Postgres - , а не - это действительно RDS, вам может потребоваться включить аутентификацию пароля в вашем файле конфигурации.

Документацию по конфигурации Postgres можно найти here; Я подозреваю, что вам может потребоваться изменить ident на md5.

+0

На самом деле, это новое развертывание Postgres на том же VPS. Я вообще не использую Amazon. Для переменной «RDS_HOST» я пробовал как «localhost», так и «127.0.0.1», которые работают на моей машине dev, но не на сервере. – mindseyeblind

+0

Было ли приложение первоначально разработано для AWS? Если нет, очень любопытно, что был выбран префикс «RDS_» - это те самые ** имена переменных переменных **, которые используются для приложения Elastic Beanstalk. Несмотря на это, я все еще подозреваю, что проблема связана с конфигурацией вашего экземпляра Postgres; если он не настроен на аутентификацию паролем, вы получите это сообщение об ошибке. – Brian

+0

Это не было - префиксы 'RDS_ * 'были выбраны из-за знакомства с Amazon. См. Мой комментарий к вопросу о временном исправлении, которое я использую. – mindseyeblind