ローカルの MongoDB を MongoDB Atlas Local に移行する方法
概要
このドキュメントでは、今までローカル開発の DB として利用していた mongo イメージを mongodb-atlas-local イメージに変更する方法を説明します。
Docker の mongo イメージでは、MongoDB Atlas の機能である Vector Search などが利用できません。 そのため、mongodb-atlas-local イメージに移行することでローカル開発体験の改善を図ります。
手順
IMPORTANT
ローカル開発環境のデータを維持するには 新しいコードを pull (反映) する前に データを dump しておく必要があるので注意してください。
データを引き継ぐ必要がない場合は、dump および restore の手順は不要です。yarn run dev:db:seed:init を実行して、再度シードデータで初期化してください。
- データを dump する
- 新しいコードを反映する (pull する)
- データを restore する
- データが読み込まれていることを確認する
1. データを dump する
下記コマンドを実行して、既存のローカルデータを dump します。dump データはコマンドを実行したディレクトリの ./dump に作成されます。
mongodump --uri "mongodb://localhost:27018/toruca?directConnection=true"2. 新しいコードを反映する (pull する)
新しいコードを pull します。docker-compose.local.yaml の toruca-mongodb の image が mongodb-atlas-local に変更されていることを確認してください。
toruca-mongodb:
restart: always
image: mongodb/mongodb-atlas-local:7.0.9
volumes:
- ./volumes/mongo-atlas-local/db:/data/db
- ./volumes/mongo-atlas-local/configdb:/data/configdb
ports:
- "27018:27017"
networks:
- backend3. データを restore する
下記コマンドを実行して、dump したデータを restore します。デフォルトで、./dump ディレクトリを参照します。
mongorestore --uri "mongodb://localhost:27018/?directConnection=true"4. データが読み込まれていることを確認する
restore コマンドが正常に完了したら、MongoDB Compass にアクセスするなどしてデータが正常に restore されているか確認してください。 なお、MongoDB Compass にアクセスする際の URI は下記のようになります。
mongodb://localhost:27018/?directConnection=trueMongoDB Compass 内の "Indexes" タブを確認すると、"SEARCH INDEXED" という選択肢があることが確認できます。

dump および restore に利用した dump ディレクトリは不要なので削除してください。