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
インストールのメモはこちら。