MongoDBの更新
現在scrapboxではMongoDB 5.0での動作を確認しています 3.x系でも動作しますが、なるべく5.0まで更新する事をおすすめしますshokai.icon
MongoDBはプログラムだけでなく、データにもバージョンが付いている
1つ前のバージョンのデータを読む事ができます
mongodb 3.8は、3.8と3.6のデータを読める
mongodb 3.6は、3.6と3.4のデータを読める
mongodb 4.0は、4.0のデータを読める
mongodb 3.8は存在しない
3.6は読めない。4系と3系ではデータの互換性が無い
mongodb 4.2は、4.2と4.0のデータを読める
mongodb 4.4は、4.2と4.4のデータを読める
mongodb 5.0は、4.4と5.0のデータを読める
MongoDBが古い場合
緊急回避方法
MongoDBの更新
1つ上のバージョンのmongodbサーバーを起動し
これを3.6→4.0→4.2と1バージョンずつ繰り返す
MongoDBは3.4、3.6、4.0、4.2、4.4、5.0と0.2刻みでバージョンが上がります
3.8と4.6は存在しません
準備
サーバーを停止させてから、./mongoディレクトリをまるごとバックアップ取っておきましょう
$ docker-compose down
$ cp -R mongo mongo-backup
mongodbサーバーのバージョン指定
code:docker-compose.yml
mongo:
image: mongo:3.4 # ここを3.6, 4.0, 4.2と上げていく
mongodb更新 3.4→3.6
docker-compose.ymlをimage: mongo:3.6に変更してから
$ docker-compose up mongo -d
mongoだけです。アプリケーションサーバーは起動させる必要はありませんshokai.icon
$ docker-compose exec mongo mongo
featureCompatibilityVersionが3.4である事を確認し、3.6に書き換える
code:mongo
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.4" }, "ok" : 1 }
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
{ "ok" : 1 }
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.6" }, "ok" : 1 }
$ docker-compose down
しっかり終了させる
以下、同じ操作の繰り返しです
mongodb更新 3.6→4.0
docker-compose.ymlをimage: mongo:4.0に変更してから
$ docker-compose up mongo
$ docker-compose exec mongo mongo
code:mongo
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.6" }, "ok" : 1 }
db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )
{ "ok" : 1 }
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "4.0" }, "ok" : 1 }
$ docker-compose down
mongodb更新 4.0→4.2
docker-compose.ymlをimage: mongo:4.2に変更してから
$ docker-compose up mongo
$ docker-compose exec mongo mongo
code:mongo
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "4.0" }, "ok" : 1 }
db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )
{ "ok" : 1 }
$ docker-compose down
Scrapboxが起動する事を確認し、これで完了です。お疲れさまでしたshokai.icon
$ docker-compose up