Mastodonを再起動したらコケた話(解決済み)

僕が建てているMastodonではサーバーOSにArch Linuxを使っているんですが、ちょっとアップデートしたらボロカスになったので修正しました。
問題は2つあり、

1. sudo pacman -Syuしたらローカルに突っ込んでるNative Extensionsと合わなくなった

2. PostgreSQLのバージョンアップの作業をサボっていた

これでした。アップグレードを雑にやると良くないなとしみじみ感じました。以後気を付けます。
それぞれ解決して無事に復活したのでメモ程度に残しておきます。

打ったコマンドまとめ

$ sudo pacman -Syu
$ cd ~/live
$ git fetch --tags
$ git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
$ sudo reboot
ここでmastodon-web.serviceが無限に落ちまくる
$ sudo systemctl status mastodon-web.service
$ sudo journalctl -b | less
$ gem install bundler -v 1.17.3
$ RAILS_ENV=production bundle install
$ yarn install
$ RAILS_ENV=production bundle exec rails db:migrate
ここでmigrate失敗、charlock_holmesというgemが見つからないというエラーが出る
$ bundle pristine <- 1番が解決
$ RAILS_ENV=production bundle exec rails db:migrate
ここでPostgreSQLが動いてないよーみたいなエラーが出たのでデータベースのアップグレード
$ sudo systemctl status postgresql.service
$ sudo pacman -S postgresql-old-upgrade
$ sudo systemctl stop postgresql.service
$ sudo mv /var/lib/postgres/data /var/lib/postgres/olddata
$ mkdir /var/lib/postgres/data /var/lib/postgres/tmp
$ sudo chown postgres:postgres /var/lib/postgres/data /var/lib/postgres/tmp
$ sudo su postgres
[postgres]$ initdb --locale ja_JP.UTF-8 -E UTF8 -D '/var/lib/postgres/data'
[postgres]$ cd /var/lib/postgres/tmp
[postgres]$ pg_upgrade -b /opt/pgsql-11/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/data
[postgres]$ exit
$ sudo reboot <- 2番が解決
$ cd ~/live
$ RAILS_ENV=production bin/tootctl cache clear
$ sudo rm -rf /var/lib/postgres/olddata /var/lib/postgres/tmp

参考にしたサイトリスト

Unable to start sidekiq, cannot open charlock_holmes - Troubleshooting - Mastodon Meta Discussion Board

Running a Mastodon instance using Arch Linux · Lond's Stuff

doc/howto/troubleshooting.md · d9b71cd97e736a8b87c94686c309f343ebf36d9f · GitLab.org / GitLab Development Kit · GitLab

PostgreSQL - ArchWiki