0

Postgresを使用してRails 5アプリケーションをCapistrano経由でVPSにデプロイしようとしています。それでも、私はPG::ConnectionBad: FATAL: password authentication failed for user 'sys_user'を与えて失敗を続けています。RailsとCapistranoでPostgreSQLに接続できない

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に設定されている - それはsys_userとしてRDS_USERNAMEを拾っているため、これは間違いなくケースです。データベースのパスワードは変数RDS_PASSWORDと同じです。ポート、ホスト名などもすべて同じです。

私は困惑しています。助けてください。

+0

解決策はありません。一時的に 'dotenv'という宝石を使います(バージョンコントロールには' .env.production'はチェックされていません)。 – mindseyeblind

答えて

0

Postgresインスタンスはどこで実行されていますか?私はあなたがElastic Beanstalkから非Amazonホストにアプリケーションを移行しようとしていることを推測しています。この場合、Postgresのインスタンスが(実際にはではない)の場合、設定ファイルでパスワード認証を有効にする必要があります。

Postgresの設定に関するドキュメントは、hereです。 identmd5に変更する必要があると思われます。

+0

実際、同じVPSにPostgresを新しくデプロイしています。私はAmazonをまったく使っていない。 'RDS_HOST'変数については、' localhost'と '127.0.0.1'の両方を試してみましたが、いずれも私の開発マシンでは動作しますが、サーバでは動作しません。 – mindseyeblind

+0

AWS用にアプリケーションが最初に開発されましたか?もしそうでなければ、Elastic Beanstalkアプリケーションに使用される**正確な**環境変数名である 'RDS_'接頭辞が選択されていることは非常に興味深いです。それにもかかわらず、私はまだあなたのPostgresインスタンスの設定に問題があると思っています。パスワード認証を受け入れるように設定されていない場合は、そのエラーメッセージが表示されます。 – Brian

+0

これはそうではありませんでした。しかし、RDS_ *プレフィックスはAmazonに精通していないので選択されました。私が使用している一時的な修正の質問に関する私のコメントを参照してください。 – mindseyeblind

関連する問題