2017年10月8日日曜日

Mastodonのインスタンスをv1.4.7からv1.6.1にアップデートした話

 いろいろ書いたのですが(追記:2017年10月8日)

 下で書いたことはすでに公式で対策済みです。
https://github.com/tootsuite/mastodon/pull/5247/files

redisも対策しないといけないそうなので、追記しておきます。

以下、初稿のまま。

数日間インスタンスを止めてしまっていた話

久しぶりに自分のおひとりさまインスタンスにアクセスするとSSL証明書エラー。
ぎゃあ。どうしてこうなった。

慌てて「sudo certbot renew」してみるも、更新する証明書は無いと言われる。あれ?

原因はnginxの再起動が上手くいっていないことだったので、1回プロセスをkillして再度起動。

ついでにv1.4.7のままだったのでアップデートをしようと思い「git checkout v1.6.1」などなどしてインスタンスを再起動したのですが、アクセスして表示されたのは
We're sorry, but something went wrong.
の、おなじみの文章。ぎゃあ。


こんな時はログ調査だ!

ログを表示してみると以下のエラーが
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 10.0.
PostgreSQL本体とDBデータのバージョンが合わないそうですね。OK OK。

そこでいつから変わったのかとリリースノートを読み返すもそんな記述は無し。あれ?

うーん、念のためバージョンを確認しますか。
$ docker-compose exec web bash -c "pg_config --version"
PostgreSQL 9.6.5
あれ?9.6系じゃないですか。

ということはdbサービスの方が10.0になったようですね。

https://hub.docker.com/r/library/postgres/tags/

上のリンクをチェックして、Alpine 9.6.5のイメージ名を確認。
docker-compose.ymlの中を次のように記述しました。
db:
  restart: always
  image: postgres:9.6.5-alpine

もう一度立ち上げ直したところ、無事v1.6.1の画面と新ロゴが表示されました。
めでたしめでたし。

Mastodonトップ

※この対処でいいのかは微妙なところです

0 件のコメント:

コメントを投稿