Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save momoseijin/9d1c22213376276dd4b1db3994412e5a to your computer and use it in GitHub Desktop.
Save momoseijin/9d1c22213376276dd4b1db3994412e5a to your computer and use it in GitHub Desktop.
Upgrade PostgreSQL 9.5 to 10 , Mastodon on Ubuntu 16.04
#Mastodon を止める
systemctl stop mastodon-{web,sidekiq,streaming}.service
#まず PostgreSQL のリポジトリを追加して、アップデートする
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main"
sudo apt update
#今回は PostgreSQL 10 にするのでバージョンを指定してインストール
sudo apt install postgresql-10 postgresql-client-10 postgresql-contrib-10
#インストールされたか確認、下記をすると今インストールされているものが出る
dpkg -l | grep postgresql
#下記のような表示で、両方入った状態が確認できるはず
ii postgresql
ii postgresql-9.5
ii postgresql-10
ii postgresql-client-9.5
ii postgresql-client-10
ii postgresql-client-common
ii postgresql-common
ii postgresql-contrib
ii postgresql-contrib-9.5
#確認したら下記をしてクラスタを確認
pg_lsclusters
#下記のように 2 つの PostgreSQL が見えるはず
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
10 main 5433 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
#このときは 10 の接続先が 5433 になっていて、まだ 9.5 が通常ポートの 5432 につながった状態
#次にインストール先の 10 を止めて、PostgreSQL もとめてアップグレード開始
sudo pg_dropcluster 10 main --stop
sudo service postgresql stop
sudo pg_upgradecluster 9.5 main
#何もエラーが出なければ DB の移行がはじまる。まあまあ時間かかる。(うちではエラーでなかったのでどんなエラー出るかはわかりません)
#終わったら再度確認
pg_lsclusters
#すると 10 のほうがポートが 5432 になっているはず
Ver Cluster Port Status Owner Data directory Log file
9.5 main 5433 offline postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
10 main 5432 offline postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
#PostgreSQL を再起動してバージョンが 10 になっているか確認
sudo service postgresql restart
psql --version
#9.5 を削除
sudo pg_dropcluster 9.5 main
#最後に Mastodon をリスタート
systemctl restart mastodon-{web,sidekiq,streaming}.service
@indie
Copy link

indie commented Aug 17, 2019

This guide is awesome! Thank you so much. 🥇

@momoseijin
Copy link
Author

Thanks !!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment