マストドンをv1.2.2→v1.4.6にアップデートした時の作業メモ
はじめに
マストドンインスタンスを立ててからアップデートをどのタイミングで行うかについて、しばらく様子を見ていたのですが、v1.4系になって色々機能が追加されたのを使いたいということでアップデートすることになりました。
Vagrantなローカル環境で検証した時の作業メモです。
アップデートするのに必要な作業はReleases · tootsuite/mastodonを遡って確認しました。
パッケージの追加
$ sudo apt-get install pkg-config libprotobuf-dev protobuf-compiler -y
Node.jsのアップデート
サポートするNode.jsのバージョンが6以降となったのでアップデートします。
$ sudo npm install n -g
$ sudo n stable
$ sudo ln -sf /usr/local/bin/node /usr/bin/node
v1.4.6をマージ
このインスタンスでは、画像を差し替えるなど本家のソースコードを改変している箇所があります。なので本家のソースコードをマージします。origin
はこのインスタンスのリポジトリを登録しているのでupstream
に本家のリポジトリを登録します。このインスタンスのブランチはdevelop
です。
$ git remote add upstream https://github.com/tootsuite/mastodon.git
$ git checkout -b master origin/master
$ git fetch upstream
$ git merge upstream/master
$ git checkout -b v1.4.6 v1.4.6
$ git checkout develop
$ git merge v1.4.6
ソースコードを改変した箇所でコンフリクトしたので修正します。また、変更内容をorigin
にpushして本番環境ではpullします。
アップデート
$ bundle install
$ yarn install
$ bundle exec rails mastodon:maintenance:prepare_for_foreign_keys
$ bundle exec rails db:migrate
$ bundle exec rails assets:precompile
$ bundle exec rails r Rails.cache.clear
本番環境ではbundle exec
のところにRAILS_ENV=production
が入ります。
サービス起動
作業前にサービスを停止していたので起動します。
$ foreman start
動作確認
動作確認をしたところ、お気に入りが表示されない不具合が発生しました。
本家のissueに同様の不具合が挙がっていて解決法も示されていました。v1.4.6
タグではなくmaster
ブランチで作業を行えば解決できるみたいなのでmaster
ブランチをマージしてアップデートコマンドをやり直して動作確認できました。
$ bundle install
$ yarn install
$ bundle exec rails db:migrate
$ bundle exec rails assets:precompile