Growiで使っているmongodbのupgrade

普段運用しているgrowiがバージョン4.2.0がリリースされ、mongodb 4.4をサポートする様になったのでアップグレードしてみた。

github.com

アップグレードに関してはドキュメントがあるのでドキュメントの通りにやっていくのが良い。

docs.growi.org

推奨されているdocker-composeで運用している場合、mongodbのバージョンはdocker-compose.ymlでmongodbのdocker imageのバージョンとして指定されている。

  mongo:
    image: mongo:3.6
    restart: unless-stopped
    volumes:
      - mongo_configdb:/data/configdb
      - mongo_db:/data/db
    restart: always

そのためアップグレードする場合は、このmongo:に続く数字を変えた上で、docker-compose stopdocker-compose upをすればいい感じ。簡単ですね。

mongodb公式によると、コンテナが立ち上がったらmongoシェルを起動して多少操作する必要があるらしい。まぁこれも簡単。

docs.mongodb.com

基本的にdocker-compose exec mongo mongodでmongoシェルを起動し、upgradeしたバージョンをdb.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )の様に設定する必要がある。

$docker-compose exec mongo mongod
$db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )

最初はいけるやろ感があったので、唐突に今動かしている3.6から4.2にupgradeしたところmongodbが立ち上がらなくなった。 調べたところGrowi公式の方も認識していて、mongodbのupgradeはドキュメントに書いてあるとおり段階的にupgradeする必要があるらしい。

dev.growi.org

ということでgrowi公式にある通り

  • MongoDB v3.6 から v4.0 へのアップグレード
  • MongoDB v4.0 から v4.2 へのアップグレード
  • MongoDB v4.2 から v4.4 へのアップグレード

このあたりを順にしてったところ無事upgradeできた。データ消えなくて良かったですね。