😸
postgresqlバージョン変更したら動かなかった件(多分)
概要
チーム開発をしているが2週間ほど触っていないRailsアプリがあった。
(他のメンバーは開発を進めてくれている)
久しぶりに動かすので
$ rails db:migrate
を実行すると以下のエラー。
Postgres PG::ConnectionBad: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
PG::ConnectionBad: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
日本語訳
PG::ConnectionBad: サーバーに接続できませんでした。サーバーがローカルで動作していて、Unixドメインソケット"/tmp/.s.PGSQL.5432 "で接続を受け付けていますか?
何故こうなったのか、操作した記憶がなかったので検討がつかない。
とりあえずエラー文でググる。
ググった結果、brew
のpostgresql
サービスを
スタート、終了、再スタートすれば直ったという記事が多い。
やってみる。
$ brew services start postgresql
$ brew services stop postgresql
$ brew services restart postgresql
上記を実行後、再度
$ rails db:migrate
実行してみるが現状は変わらず。
アップグレードすると直る。という記事も多かったので試す。
$ brew postgresql-upgrade-database
現在のバージョンが最新との表示。(少し前にbrewの更新を行ったため。)
以下のコマンドを試す。(内容わかってない)
$ postgres -D /usr/local/var/postgres
the data directory was initialized by postgresql version 12, which is not compatible with this version 13.1.
エラーの詳細?のようなものが表示された。
the data directory was initialized by postgresql version 12, which is not compatible with this version 13.1.
日本語訳
データディレクトリはpostgresqlバージョン12で初期化されており、このバージョン13.1とは互換性がありません。
現在使っているアプリのpostgresql
のバージョンが12だが、
今起動しているpostgresql
のバージョンは13で互換性がない?
アプリのと互換性のあるバージョンをインストールして合わせてみる。
12はすでにinstall済みだったのでインストールし直す。
バージョン13をストップし、バージョン12を起動。
$ brew install postgresql@12
$ brew reinstall postgresql@12
$ brew services stop postgresql@13//13は停止
$ brew services start postgresql@12
上記を実行後再度試す。
$ rails db:migrate
正常に処理が成功しました。
バージョンの互換性で動かなかったってことかな?
おそらくそうだと思いますが自信ないので、
タイトルに"(多分)"とつけてます。笑
なんとか解決できてよかった。
Discussion