Railsの勉強するのにWEBアプリケーションを作成しようとした。最終的にHerokuへデプロイするのでDBをPostgreSQLに設定しようとしたときに躓いた話。
環境
OS:windows10
ただし開発はWindows Subsystem for Linux(Ubuntu 16.04.5)
エラー
ローカル環境にPostgreSQL環境を構築しようとした際に出てきたエラー。Rails sすると出てくる。
could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
google翻訳で和訳してみる
サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありませんサーバーはローカルで実行されており、Unixドメインソケット "/var/run/postgresql/.s.PGSQL.5432"で接続を受け入れていますか?
エラーコードでぐぐってみると、PATHが原因とか/var/run/postgresql/の設定が違うとかいろいろ出てきた。たぶん検索した内容の方が正解なのだろうけど、駆け出しエンジニアには厳しい内容だと感じた。ただでさえなれないCUI環境でファイルの編集とか厳しいっす。もっと簡単に解決できないか試行錯誤していたら解決策を発見した。
対策
database.ymlのdevelopmentを以下のように編集する。
(省略)
development:
<<: *default
database: データベース名
host: localhost
port: 5432
(省略)
たったこれだけ。hostをlocalhostに指定し、portを5432に指定しただけ。ね、簡単でしょ?
本来だとPostgreSQLの方で設定するべきなのだろうけど、勉強中のひとやPC慣れしていない人にとってはこれでいいのではないかと。
あとから勉強してこの記述が不要になるようにしたいところ。