Skip to content

ローカルの 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 を実行して、再度シードデータで初期化してください。

  1. データを dump する
  2. 新しいコードを反映する (pull する)
  3. データを restore する
  4. データが読み込まれていることを確認する

1. データを dump する

下記コマンドを実行して、既存のローカルデータを dump します。dump データはコマンドを実行したディレクトリの ./dump に作成されます。

bash
mongodump --uri "mongodb://localhost:27018/toruca?directConnection=true"

2. 新しいコードを反映する (pull する)

新しいコードを pull します。docker-compose.local.yamltoruca-mongodbimagemongodb-atlas-local に変更されていることを確認してください。

yml
  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:
      - backend

3. データを restore する

下記コマンドを実行して、dump したデータを restore します。デフォルトで、./dump ディレクトリを参照します。

bash
mongorestore --uri "mongodb://localhost:27018/?directConnection=true"

4. データが読み込まれていることを確認する

restore コマンドが正常に完了したら、MongoDB Compass にアクセスするなどしてデータが正常に restore されているか確認してください。 なお、MongoDB Compass にアクセスする際の URI は下記のようになります。

text
mongodb://localhost:27018/?directConnection=true

MongoDB Compass 内の "Indexes" タブを確認すると、"SEARCH INDEXED" という選択肢があることが確認できます。

MongoDB Compass Indexes

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