LoginSignup
0
1

More than 1 year has passed since last update.

Growi 4.5.8から5.1.3までアップグレードした時の記録

Last updated at Posted at 2022-09-01

概要と前提

docker-composeで設定したGrowiを、ちょっとした外部接続なし環境でdocker saveしたイメージベースで運用している。

既存Growiは4.5.8だが、ページツリーのある5.1系にアップグレードしたいと思った。
データアーカイブで中味を書き出して、インポートすればすぐなのでは?と気楽に考えていたが、ドキュメントをみると作成したアーカイブは同一バージョン間でしか利用できない。

GrowiのSlackで聞いてみたが、直接Growi上げては?との回答だったので、どうすればいいのかな~と思ったり、単にイメージを差し替えても動かないのでどうしようかと思った。

結論

MongoDBのアップデートがキモだった。

手順

当初docker-composeで動いていたのはGrowi4.5.8+mongoDB3.6。
GrowiのDockerfileで新しいバージョンに書き換えて実行したが、Growi5.1はmongoDB4.4以上を求めておりエラーになる。

Growiのアップグレードガイドばかり見ていたが、ふと目を下すとmongoDBのアップグレードについて記載があった。
関連してググると、下記Wikiをみつけた。
https://dev.growi.org/5f6afa883a72dc0048e54ab7

結果以下のやり方でアップデートできた。

  1. 初期docker-compose.ymlの状態(Growiは4系のまま)で、mongoDB 3.6→4.0にアップデート(イメージ差し替え)
  2. docker-compose upしている状態で docker-compose exec mongo bash 実行
  3. mongoDBの機能互換バージョン(FCV)を確認: db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
  4. mongoDBの機能互換バージョンを次のバージョンに書き換え: db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )
実行イメージ
> docker-compose exec mongo bash
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.6" }, "ok" : 1 }
>  db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )

3.6から一度に4.4まではアップグレードできない。
docker-compose.ymlのmongdbを 3.6 から 4.0 に書き換えて FCV を同4.0に。
いったんコンテナを停止し、docker-composeのmongodbを再び4.0から4.2に書き換え、設定。
繰り返して 3.6 → 4.0 → 4.2 → 4.4 と順番に作業することで、最終的にmongodb:4.4としていてもコンテナが再起動を繰り返すことがなくなった。

mongodbを4.4まであげられたら、Dockerfileのgrowiを4.5.8→5.1.3に書き換えて docker-compose up 、これでようやく5.1系統にアップデート終了。
あとはGrowiの上からメンテナンスモードに落として、V5形式に変換を行う。

参考リンク

0
1
0

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
0
1