前提知識
growi/.devcontainer/docker-compose.yml
で指定されている MongoDB バージョンが commit: eb226b8 external_link で 4.4 から 6.0 にアップグレードされました。
- docker の性質上それまで利用していたコンテナを使い続けますが、rebuild container した際に mongo:4.4 で開発していたDBデータを引き継ぐためには以下の手順が必要になります。
- v4.4 から v5.0, v5.0 から v6.0 へ順番にアップグレードする必要があります。
1. v4.4 から v5.0 へのアップグレード
growi/.devcontainer/docker-compose.yml
で mongo サービスのイメージを mongo:5.0
へ書き換える
mongo:
image: mongo:5.0
restart: unless-stopped
ports:
- 27017:27017
volumes:
- /data/db
- robo3T などから以下のコマンドを実行する
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
- return value に以下が含まれていることを確認する
"featureCompatibilityVersion" : { "version" : "4.4" }
- version が
4.4
でない場合は以下のコマンドで書き換える
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
- Docker Desktop から MongoDB v4.4 を停止する
- VSCode で Ctrl + Shift + P から「Remote-Container: Rebuild Container」を選択する
2. v5.0 から v6.0 へのアップグレード
growi/.devcontainer/docker-compose.yml
で mongo サービスのイメージを mongo:6.0
へ書き換える
mongo:
image: mongo:6.0
restart: unless-stopped
ports:
- 27017:27017
volumes:
- /data/db
- robo3T などから以下のコマンドを実行する
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
- return value に以下が含まれていることを確認する
"featureCompatibilityVersion" : { "version" : "5.0" }
- version が
5.0
でない場合は以下のコマンドで書き換える
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
- Docker Desktop から MongoDB v5.0 を停止する
- VSCode で Ctrl + Shift + P から「Remote-Container: Rebuild Container」を選択する
横着編
- Docker Desktop から MongoDB コンテナを削除する(DBデータが消えるので注意)
- Ctrl + Shift + P から「Remote-Container: Rebuild Container」を選択