MacのPostgreSQLをアップグレードする。

brew upgrade postgresql したら下記のエラーが出て起動しなくなったので、対応したメモ。

FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.5, which is not compatible with this version 9.6.2.

ログは

% tail `brew --prefix`/var/log/postgres.log

にあるはず。

公式のドキュメントは→https://www.postgresql.jp/document/9.6/html/pgupgrade.html

まず動いているプロセスを停止していまのdataを退避し、代わりに空のdataを作る。

% launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
% mv `brew --prefix`/var/postgres `brew --prefix`/var/postgres_95
% initdb `brew --prefix`/var/postgres -E utf8

退避したdataから新しく作ったdataにコピー。

% pg_upgrade \
  -b `brew --prefix`/Cellar/postgresql/9.5.4_1/bin \
  -B `brew --prefix`/Cellar/postgresql/9.6.2/bin \
  -d `brew --prefix`/var/postgres_95 \
  -D `brew --prefix`/var/postgres

最後に下記のメッセージが出るので、「正常に起動することを確認した後に」それぞれのスクリプトを実行して完了。

Upgrade Complete
----------------
Optimizer statistics are not transferred by pg_upgrade so,
once you start the new server, consider running:
    ./analyze_new_cluster.sh

Running this script will delete the old cluster's data files:
    ./delete_old_cluster.sh

起動する。

% launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

インストールのメモはこちら

タイトルとURLをコピーしました