Оглавление
Обзор
Prisma требует, чтобы экземпляр MongoDB работал как набор реплик, который нетривиально настроить локально, хотя довольно легко с помощью Atlas. Но если ваше интернет-соединение не очень хорошее, установка локального экземпляра становится обязательной для разработки.
Почему я пишу эту статью? Потому что существует слишком много способов сделать это неправильно. Я нашел правильный способ тяжелым путем. Если вам нужно быстрое решение, вы можете проверить мой ответ на stackoverflow. Здесь я собираюсь предоставить подробные шаги с объяснениями.

Что такое набор репликаций
Набор реплик в MongoDB - это группа процессов mongodb, которые обрабатывают одни и те же данные для обеспечения избыточности.
Избыточность повышает высокую доступность. В наборе реплик, если один узел выходит из строя, другой узел может взять на себя выполнение операций.
Существует один первичный узел и другие вторичные узлы. Вот диаграмма, которая суммирует взаимодействие между первичными и вторичными узлами

Если вы хотите узнать больше, вы можете прочитать об этом здесь
Установка локального экземпляра с помощью Docker
Prisma опубликовала образ docker, который создает реплику одного экземпляра без дополнительной настройки.
Перейдите к тегам и найдите последнюю доступную версию, на данный момент это 5.0.3.
Извлеките образ docker с помощью
docker pull prismagraphql/mongo-single-replica:5.0.3
Запустите образ с помощью этой команды
docker run --name mongo \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME="monty" \
-e MONGO_INITDB_ROOT_PASSWORD="pass" \
-d prismagraphql/mongo-single-replica:5.0.3
Теперь необходимо настроить URL подключения, в данном случае он должен выглядеть следующим образом,
DATABASE_URL="mongodb://monty:pass@localhost:27017/db_name?authSource=admin&directConnection=true"
Замените db_name на имя вашей базы данных, если она не существует, она будет создана автоматически.
Обратите внимание, что ROOT_USERNAME и authSource не совпадфают, вы можете изменить ROOT_USERNAME на любой другой, но authSouce должен быть admin, так как это база данных, которая содержит учетные данные пользователей.
Наконец, протестируйте соединение. Выполните эту команду в корневом каталоге проекта. Это синхронизирует вашу схему с базой данных
npx prisma db push
Настройка в MongoDB Atlas
- Создайте бесплатный аккаунт https://www.mongodb.com/cloud/atlas/register
- Создайте новый проект
Нажмите на кнопку "Создать базу данных

Выберите свободный кластер M0 и задайте ему имя.
Вам будет предложено создать пользователя
ПРИМЕЧАНИЕ: Для безопасности вы должны использовать автоматически сгенерированный пароль и записать его где-нибудь.
Ваш IP будет автоматически добавлен в список доступа, нажмите ”Завершить и закрыть” и перейдите к базе данных.

Чтобы получить url подключения, нажмите кнопку “Connect” и выберите “Drivers”.
Наконец, скопируйте url подключения и замените на ваш автоматически сгенерированный пароль
ВАЖНО: Вы должны добавить имя базы данных после имени хоста. В моем случае url выглядит следующим образом
DATABASE_URL="mongodb+srv://monty:pass@cluster0.nqtl0pv.mongodb.net/db_name?retryWrites=true&w=majority"
Протестируйте соединение и схему синхронизации
npx prisma db push