#問題
タイトル通り、postgresqlでrailsアプリのDB作成を試みると、connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
とエラーを吐かれた。
#状況
postgresqlはbrew install
で最新バージョンをインストールしている。
#原因
下記コマンドでログを見てみる。
postgres -D /usr/local/var/postgres
すると、
% postgres -D /usr/local/var/postgres
2021-11-24 02:00:01.120 JST [36758] FATAL: database files are incompatible with server
2021-11-24 02:00:01.120 JST [36758] DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.1.
互換性がないと言う旨のエラーが出力。
つまり、インストールしたpostgresqlのバージョンが14.1なのに対し、macPCにインストールされているpostgresのデータディレクトリのバージョンは13なので、互換性がないですよ、と言われている。
#解決策
データディレクトリを一旦削除してから、再度posgreをインストール。
まずはデータディレクトリを削除。
rm -rf /usr/local/Cellar/postgresql/14.1
※場合によってはsudo
をつけた方がいいかも。
homebrewでインストールした、postgresqlをアンインストール。
brew uninstall --force postgresql
からの、インストール!!!
brew install postgresql
データディレクトリの作り直しもしておきましょう。
initdb /usr/local/var/postgresql
インストールされているか確認して、
% psql --version
psql (PostgreSQL) 14.1
postgresqlを起動。
brew services start postgresql
rails db:create
をする。
% rails db:create
Created database 'XXX_development'
Created database 'XXX_test'
無事、DB作成できました。