Baa*_*gan 6 localhost mongodb mongodb-replica-set prisma
错误Invalid "prisma.user.create()". Prisma needs to perform transactions, which requires your MongoDB server to be run as a replica set.
我将 Nx ( nx.dev ) 与 MongoDB/Express 和 Prisma 一起使用。
可以使用易于使用的docker 映像来创建单个实例副本
docker pull prismagraphql/mongo-single-replica:5.0.3docker 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
Run Code Online (Sandbox Code Playgroud)
DATABASE_URL="mongodb://monty:pass@localhost:27017/db_name?authSource=admin&directConnection=true"
Run Code Online (Sandbox Code Playgroud)
您必须提供 authSource=admin 选项,否则身份验证将失败
DATABASE_URL="mongodb+srv://username:password@cluster_name.random_string.net/db_name?retryWrites=true&w=majority"
Run Code Online (Sandbox Code Playgroud)
请注意,官方文档目前遵循之前用于本地实例的格式,但这里不包含端口号并具有 +srv 后缀,如果没有它,我会遇到一些问题。
如果您想使用文档中使用的格式,那么您必须提供选项 ssl=true,并且对于主机名,您必须使用主集群,它看起来像 random_string.mongodb.net:27017,您可以在概述选项卡中找到它单击您的集群名称
显然,在长时间面临连接 Prisma 和 MongoDB(本地)的连续问题之后,我们有 3 种方法来解决这个问题。您必须使用Docker或MongoDB Atlas。
Docker - Docker
MongoDB Atlas - MongoDB 副本
诗。您的 MongoDB URL 环境应该如下所示 -> mongodb://localhost:27017/<your-db-name>?retryWrites=true&w=majority。
我决定最终选择选项 3. 从 MongoDB 跳转到 PostgreSQL,它没有任何副本问题,但没有 noSQL :)
| 归档时间: |
|
| 查看次数: |
7151 次 |
| 最近记录: |