Mastodonに利用しているPostgresqlのバージョンが9.4以下だと
Mastodonをv2.4.2に上げることが出来ないのですが、9.5なら問題ないのでいいかなーと思ってたのですが
どうせまた何れはやらなければならないし、9.5ってのも微妙だったので9.6にアップグレードしてみました。
多分9.4から9.6でもいけるはず…
今回の作業は以下のURLをまるまる参考にしています。
https://gist.github.com/johanndt/486955d141d7f8883a537c2679b6a4f2
うちの環境は非DockerなんでDocker環境な方にも適用できるかわかりません。
あと、一応作業前にスナップショットなりバックアップなり取っておくことをオススメします。
1.とりあえずコンソールに入ったらpostgresqlの参照先の追加とパッケージリストの更新
sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
2.Postgresql 9.6をインストール
sudo apt-get install postgresql-9.6
3.インストールが終わったら
dpkg -l | grep postgresql
で
ii postgresql 9.5+173ubuntu0.1 all object-relational SQL database (supported version)
ii postgresql-9.5 9.5.13-0ubuntu0.16.04 amd64 object-relational SQL database, version 9.5 server
ii postgresql-9.6 9.6.9-2.pgdg16.04+1 amd64 object-relational SQL database, version 9.6 server
ii postgresql-client-9.5 9.5.13-0ubuntu0.16.04 amd64 front-end programs for PostgreSQL 9.5
ii postgresql-client-9.6 9.6.9-2.pgdg16.04+1 amd64 front-end programs for PostgreSQL 9.6
ii postgresql-client-common 173ubuntu0.1 all manager for multiple PostgreSQL client versions
ii postgresql-common 173ubuntu0.1 all PostgreSQL database-cluster manager
ii postgresql-contrib 9.5+173ubuntu0.1 all additional facilities for PostgreSQL (supported version)
ii postgresql-contrib-9.5 9.5.13-0ubuntu0.16.04 amd64 additional facilities for PostgreSQL
9.5と9.6がそれぞれインストールされている事を確認
また
pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.5 main 5432 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
9.6 main 5433 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
両バージョンともオンラインであることが確認できる
4.アップグレードするため9.6の設定等を削除して、ついでに止める
sudo pg_dropcluster 9.6 main --stop
これで9.5の設定を引き継ぐための箱ができた(と解釈している)
アップグレード作業をするためpostgresqlのサービスを止める
sudo service postgresql stop
そして、9.5をアップグレードをする
sudo pg_upgradecluster 9.5 main
で、ここでうちの環境ではエラーが発生した。
うちの環境ではcronで毎日セキュリティアップデートをする設定にしていたのだが
何かの拍子でpostgresql10もインストールされていたので怒られた。
というわけでバージョンを指定した。
sudo pg_upgradecluster -v 9.6 9.5 main
上手く行けば後はコーヒーでも飲みながら出来上がるのを待ちましょう。
大規模なインスタンスですとMastodonのDBをアップグレードするのに相当時間がかかるはずです。
終わりましたら
psql --version
でバージョンを確認し
psql (PostgreSQL) 9.6.9
のように9.6になっていることを確認してください。
もし違うバージョンが出力されたら
https://mementoo.info/archives/2146
を参考にしてください。
ということでやっつけですがpostgresのアップグレード方法でした。