设置MongoDB复制品在Docker或Atlas for Prisma Orm中
#database #prisma #mongodb #backend

概述

Prisma要求MongoDB实例作为复制集运行,该集合在本地设置并非广泛,尽管使用Atlas非常容易。但是,如果您的Internet连接不是很好,则将设置本地实例是必须的开发

我为什么写这篇文章?因为有太多方法可以做错。我找到了正确的方式。如果您需要快速解决方案,则可以在stackoverflow上检查我的答案。在这里,我将提供有关说明的详细步骤

Meme

Image source

什么是复制品集

MongoDB中的复制品集是一组MongoDB过程,该过程处理相同的数据以提供冗余。

冗余增加了高可用性。在副本中,如果一个节点失败,则可以接管另一个节点来维护操作

有一个主节点和其他次要节点。这是一个图表,总结了主要节点和次要节点之间的相互作用

Replica Set

如果您想了解更多信息,则可以阅读here

用Docker设置本地实例

Prisma已发布了一个docker image,该docker image创建一个无附加配置的单个实例副本

  • 转到tags并找到最新版本,此刻为5.0.3


  • 拉码头图像

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必须管理,因为这是包含用户凭据

的数据库
  • 最终测试连接。在项目根目录中运行此命令。这将使您的模式同步到数据库
npx prisma db push

MongoDB Atlas的设置

  1. 创建一个免费帐户here11
  2. 创建新项目
  3. 单击“构建数据库”按钮 Build Database
  4. 选择免费的M0群集并为其提供名称。 Create Cluster
  5. 您将提示创建用户 Create User 注意:您应该使用自动生成的密码进行安全性,并在某个地方注视
  6. 您的IP将自动添加到访问列表中,单击“ Finsh并关闭”,然后转到数据库。 Finish Cluster Creation
  7. 要获取连接URL,请单击“连接”按钮,然后选择“驱动程序” Connect
  8. 最终将连接URL复制,然后用自动生成的密码替换 Get URL
  9. 重要:您必须在主机名之后添加数据库名称。在我的情况下,URL看起来像这样
DATABASE_URL="mongodb+srv://monty:pass@cluster0.nqtl0pv.mongodb.net/db_name?retryWrites=true&w=majority"

测试连接和同步模式

npx prisma db push

出于对你们的纯粹爱,我关闭了我创建的群集,以免您浪费任何时间试图在我的数据库中获得马拉维尔