#1, 環境
macOS catalina 10.15.7
Ruby 2.6.5p114
Rails 6.0.3.7
#2, はじめに
エラーにハマって自身でしらべ、解消できたのですが今後も起きた時のためにも残しておきます。
また、同じエラーで困った人の助けになれば。
#3, エラー内容
deviseの導入を行なっており、rails db:migrateを実行すると、
kanta@fukazawakantanoMacBook-Pro insta-app-daytra % rails db:migrate
rails aborted!
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"?
DBの接続に関してのエラーっぽいですね。
#4, 試したこと
エラー文をDeepLにて翻訳。
PG::ConnectionBad: サーバーに接続できませんでした。No such file or directory
サーバーはローカルで動作していて、以下を受け付けています。
Unixドメインソケット「/tmp/.s.PGSQL.5432」で接続を受け付けていますか?
なんとなくの意味は分かったが根本的な問題は分からず。
そこでエラー文の
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
をググると、以下の記事がヒット
→https://qiita.com/knxrvb/items/72d88fe5364561214e52
ターミナルでそこにあるコードを実行しDBを起動しようとすると
postgres -D /usr/local/var/postgres
2021-05-11 15:22:39.356 JST [31540] FATAL: database files are incompatible with server
2021-05-11 15:22:39.356 JST [31540] DETAIL: The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 13.2.
とログが表示。
翻訳すると、
データベースファイルがサーバーと互換性がない
データディレクトリはPostgreSQLバージョン12で初期化されており、このバージョン13.2とは互換性がありません。
と、postgresのバージョンが古いみたい。
記事にもあるアップグレードさせるコードを実行。
brew postgresql-upgrade-database
いろいろコードが走り、
==> brew install postgresql@12
==> Downloading https://ghcr.io/v2/homebrew/core/postgresql/12/manifests/12.6_2
######################################################################## 100.0%
・
・
・
一件落着かに思われたが、、、
Error: Upgrading postgresql data from 12 to 13 failed!
==> Removing empty postgresql initdb database...
==> Moving postgresql data back from /usr/local/var/postgres.old to /usr/local/var/postgres...
Error: Failure while executing; `/usr/local/opt/postgresql/bin/pg_upgrade -r -b /usr/local/Cellar/postgresql@12/12.6_2/bin -B /usr/local/opt/postgresql/bin -d /usr/local/var/postgres.old -D /usr/local/var/postgres -j 4` exited with 1.
アップグレードできず。。。
そのままエラー文の
pgrading postgresql data from 12 to 13 failed!
どうやらPostgresSQLを起動したままアップデートを行ったことがまずかったみたい。
記事に従って、PostgresSQLを停止させ、
brew services stop postgresql
brew postgresql-upgrade-database
.
.
.
==> Upgraded postgresql data from 12 to 13!
==> Your postgresql 12 data remains at /usr/local/var/postgres.old
無事アップグレード完了!!
試しにDBを起動させると、
brew services start postgresql
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
成功ですね!!
rails db:migrateも実行できました!!!