概述
Prisma要求MongoDB实例作为复制集运行,该集合在本地设置并非广泛,尽管使用Atlas非常容易。但是,如果您的Internet连接不是很好,则将设置本地实例是必须的开发
我为什么写这篇文章?因为有太多方法可以做错。我找到了正确的方式。如果您需要快速解决方案,则可以在stackoverflow上检查我的答案。在这里,我将提供有关说明的详细步骤
什么是复制品集
MongoDB中的复制品集是一组MongoDB过程,该过程处理相同的数据以提供冗余。
冗余增加了高可用性。在副本中,如果一个节点失败,则可以接管另一个节点来维护操作
有一个主节点和其他次要节点。这是一个图表,总结了主要节点和次要节点之间的相互作用
如果您想了解更多信息,则可以阅读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的设置
- 创建一个免费帐户here11
- 创建新项目
- 单击“构建数据库”按钮
- 选择免费的M0群集并为其提供名称。
- 您将提示创建用户 注意:您应该使用自动生成的密码进行安全性,并在某个地方注视
- 您的IP将自动添加到访问列表中,单击“ Finsh并关闭”,然后转到数据库。
- 要获取连接URL,请单击“连接”按钮,然后选择“驱动程序”
- 最终将连接URL复制,然后用自动生成的密码替换
- 重要:您必须在主机名之后添加数据库名称。在我的情况下,URL看起来像这样
DATABASE_URL="mongodb+srv://monty:pass@cluster0.nqtl0pv.mongodb.net/db_name?retryWrites=true&w=majority"
测试连接和同步模式
npx prisma db push
出于对你们的纯粹爱,我关闭了我创建的群集,以免您浪费任何时间试图在我的数据库中获得马拉维尔