👊
「ActiveRecord::ConnectionNotEstablished」に立ち向かう
久しぶりにRailsを触ってみたいと思い、こちらの記事を参考に、バックエンドにrails、フロントエンドにreactという構成でアプリを作ってみようとした際に起こったエラーを解決するまでのお話です。
エラーが起きた場所
以下のコマンドにて、
$ rails db:create
$ rails db:create
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"?
Couldn't create 'auth_app_api_development' database. Please check your configuration.
rails aborted!
ActiveRecord::ConnectionNotEstablished: 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"?
というエラーが発生。ActiveRecord::ConnectionNotEstablished: could not connect to server: No such file or directory
などでググってみると、どうやらpostgresqlが立ち上がっていない様子。
そこで、$ brew services start postgresql
というコマンドでpostgresqlを起動し、コンソールのlogに
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
と表示されたので、「これでOK」と思い再び$ rails db:create
を打ったものの、また同じエラーが。。。
そこで、$ brew services list
で起動できているのか確認してみたところ、以下のような状態になっていました。
$ brew services list
mysql stopped
mysql@5.7 stopped
postgresql error ryota /Users/ryota/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
postgresqlがエラー??
そこで、brew services list postgresql error
で検索してみたところ、以下の記事を発見。
Homebrewでインストールしたpostgresqlが起動しないのを調べた
解決した方法
記事にも書いてありますが、古いバージョンで作成したデータベースがどうやらよくなかったらしいです。
$ pg_ctl -D /usr/local/var/postgres start
The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 13.2.
以下のコマンドを実行したのちにpostgresqlを$ brew services restart postgresql
で再起動したら治りました。
$ brew postgresql-upgrade-database
$ brew services list
Name Status User Plist
mysql stopped
mysql@5.7 stopped
postgresql started ryota /Users/ryota/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
postgresql@12 stopped
postgresのversion 12もstoppedになっているので成功です。
$ rails db:create
Created database 'auth_app_api_development'
Created database 'auth_app_api_test'
きちんと$ rails db:create
もできました。
Discussion