MENU
カテゴリー

The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.0.

  • URLをコピーしました!
目次

久しぶりにエラーに出くわしてしまった

The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.0.

これだ。Railsでpostgresqlでアプリケーションを作ろうとしたときに出くわした。

解決方法

$ rm -rf /usr/local/var/postgres/postmaster.pid 

$ brew postgresql-upgrade-database

$ rails db:create

$rails s

なぜこのエラーが出るのか

このエラーは、HomebrewなどでアップデートしたことでPostgreSQL本体のメジャーバージョンが上がった(例:13→14)のに、既存のデータディレクトリが古いバージョンの形式のまま残っていることが原因。

PostgreSQLはメジャーバージョンが変わるとデータディレクトリの内部フォーマットに互換性がなくなることがある。そのため新しいバージョンでそのまま起動しようとすると、バージョンが合わないという上記のメッセージが出る。

上の解決方法で実行しているbrew postgresql-upgrade-databaseは、古いデータディレクトリの中身を新しいバージョン用に移行してくれるコマンド。これでバージョンの不一致が解消される。

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
目次