Debian SidにPostgreSQL 10のrc1が入ったので移行した。
upgradeの手順は/usr/share/doc/postgresql-10/README.Debian.gzの"Default clusters and upgrading"にある通り。
cf. PostgreSQL 9.5→9.6へupgradeに伴うMediaWikiへの影響と対策
(https://typeinf-memo.blogspot.jp/2016/09/postgresql-9596upgrademediawiki.html)
PostgreSQLのupgradeに伴うdatabaseの移行手順
現行のdatabase serverを止める
% sudo service postgresql stop
※ps aux | grep postgresqlあたりで確認して止まっていない場合:
% sudo pg_ctlcluster 10 main stop
Install時に自動で作られた新しいversionの (空の)database clusterを削除
10をinstallした際に自動で作られたclusterをdrop:
% sudo pg_dropcluster 10 main
pg_upgradeclusterでdataを移行する
今回は9.6 → 10へ移行:
% sudo pg_upgradecluster 9.6 main
Portの変更
新しい側 (10)のport numberはinstall時に5433なので、これをdefaultの5432に変更する。うっかり忘れるとphp-fpmなど外部のprocessからdatabaseに接続できなくなる。
或いはclient側を新しいport numberに接続するよう変更する。
% sudoedit /etc/postgresql/10/postgresql.conf
新しいdatabaseを立ち上げる
% sudo pg_ctlcluster 10 main start
動作を確認した後、古い方のversionを削除する
必要に応じて。