デプロイをしている最中のエラー。
Postgresqlを使っています。
unicorn.logの結果は下記の通り。
Is the server running on host "3.114.69.77" and accepting
TCP/IP connections on port 5432?
(PG::ConnectionBad)
原因はいくつかある。
Ec2内のデータベースにアクセスできる権限がない。
アプリディレクトリでpsql -lと打って下記のように表示されれば、権限がない可能性があります。
\lで確認しても権限がない。
portfolioの部分にアクセス権が書いていない。
したがって下記のコマンドで権限を追加します。
$ su - postgres #管理者権限でDBに入る。
$ psql postgres
$ psql -U postgres -d postgres #postgresユーザで入る。
$ su postgres
$ psql -l
$ GRANT ALL PRIVILEGES ON DATABASE portfolio to postgres; #これで権限を追加できる。
しかしunicorn.logのエラー文は変わらず。
database.ymlの本番環境のhost名はlocalhostかIPを指定する。
database.ymlの本番環境のhost名でlocalhostかIPを指定することによって解決。
以下のようなルールがあるとのこと。