普段運用しているgrowiがバージョン4.2.0がリリースされ、mongodb 4.4をサポートする様になったのでアップグレードしてみた。
アップグレードに関してはドキュメントがあるのでドキュメントの通りにやっていくのが良い。
推奨されている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 stop
とdocker-compose up
をすればいい感じ。簡単ですね。
mongodb公式によると、コンテナが立ち上がったらmongoシェルを起動して多少操作する必要があるらしい。まぁこれも簡単。
基本的に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する必要があるらしい。
ということでgrowi公式にある通り
- MongoDB v3.6 から v4.0 へのアップグレード
- MongoDB v4.0 から v4.2 へのアップグレード
- MongoDB v4.2 から v4.4 へのアップグレード
このあたりを順にしてったところ無事upgradeできた。データ消えなくて良かったですね。