LoginSignup
6

More than 3 years have passed since last update.

Mastodonアップデート手順(基本)・非Docker版

Last updated at Posted at 2017-09-26

前提条件

  • 非Docker
  • Mastodonは、公式の手順で構築済みであること。

制限事項

  • 本手順は、CentOS 7 にて使用したものである。
  • Fedora Server (28) でも使えている。

特記事項

  • アップデート作業後、CSS・画像ファイル等にアクセスが出来なくなった場合(403)は、Nginxの実行ユーザを「mastodon」に切り替えることで対応可能

手順

(重要)まず、公式のリリースノートを読み、手順を確認する。
https://github.com/tootsuite/mastodon/releases

以下に示す手順を鵜呑みにせず、公式の手順通り行うこと。

だいたい共通しているものを下に示す。

  1. Mastodonのサービス3点セットを止める
  2. データベースのバックアップを取る
  3. Mastodon専用ユーザに切り替える
  4. タグ一覧から任意のバージョンに上げる
  5. 依存パッケージのインストールを行う
  6. データベースマイグレートを行う(変更なしの場合は空振りするのでOK)
  7. アセットのプリコンパイルを行う
  8. Mastodonのサービス3点セットを動かす

前準備

Mastodon3点セットを止めて、mastodonユーザになる

sudo systemctl stop mastodon-{web,sidekiq,streaming}

sudo su - mastodon

データベースバックアップ

# DBが同一ホストで動いている場合
pg_dump --username=mastodon --no-owner mastodon > mastodon.`date +%Y%m%d_%H%M%S`.pgdump

# DBのホストが違う場合
pg_dump --host=10.1.1.20 --username=mastodon --no-owner mastodon > prefix.`date +%Y%m%d_%H%M%S`.pgdump

--no-owner オプションは必須ではない。異なる環境にデプロイする場合にオーナー指定が邪魔になることがあるので、念のため付加している。

パブリックディレクトリバックアップ

巨大になるので注意。可能ならしたほうがよいが必須ではない

# 先に、どのくらいのサイズ感か確認しておく
du -h -d 1 live/

# バックアップ(gzipかけても圧縮率80%程度な感じ)
tar -czf  public.`date +%Y%m%d_%H%M%S`.tar.gz live/public

Gitでタグ指定アップデート

cd ~/live/

git fetch 
git tag

git checkout vX.X.X

bundle install && yarn install

# 他に必要な手順があればここで行う(前)

RAILS_ENV=production bundle exec rails db:migrate
RAILS_ENV=production bundle exec rails assets:clobber
RAILS_ENV=production bundle exec rails assets:precompile

# 他に必要な手順があればここで行う(後)

exit

sudo systemctl start mastodon-{web,sidekiq,streaming}

データベースマイグレーションが必要ないアップデートにおいてdb:migrateを実行した場合、何も行われず空振りする。
空振りしたところで特に害はないはずなので、ルーチンワークとして念のため実行しておくとよいかもしれない。

assets:clobberを実行すると、生成済みのアセット(静的ファイル)を全てクリアする。
アセットのキャッシュが残りっぱなしになってディスク容量を浪費することがあるので、必要に応じて実行する。

どのバージョンからか不明だが、assets:precompileを実行するとyarn installも一緒に実行されるように見受けられる。
ので、前もってyarn installする必要はないのかもしれない。

あとがき

  • 自分用にメモした手順です。必要に応じて読み替えてください。
  • ここ、こうしたほうがいいよ的なアドバイスを頂けると大変助かります。

以上

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6