Prisma Mongodb无法创建用户模型

qxsslcnc  于 2023-03-07  发布在  Go
关注(0)|答案(2)|浏览(257)
    • 这是我第一次使用Prisma,我的提供程序是mongodb,当我想要创建模型时,它向我抛出了一个错误**
Invalid `prisma.user.create()` invocation:

  Prisma needs to perform transactions, which requires your MongoDB server to be run 
as a replica set. https://pris.ly/d/mongodb-replica-set
    • 我在nextjs应用程序中使用Prisma,并将代码放在API页面中**

我的数据库URL是mongodb://localhost:27017/threadzees
代码:

await prisma.user.create({
      data: {
        username,
        email,
        avatar: "1",
        createdAt: new Date(),
      },
    });
    • 如何解决此问题?**
g52tjvyc

g52tjvyc1#

我正在运行Mongodb 4+版本,我解决了这个问题,如下所示根据错误描述,您需要创建一个副本。您可以使用基于云的Mongo,也可以在本地创建一个副本,如下所示。

# Open new terminal execute below command
 mongod --port=27001 --dbpath=. --replSet=rs0
# Open another terminal window execute below command
mongo.exe
# Then below command
rs.initiate( {    _id : "rs0", members: [ { _id: 0, host: "localhost:27001" } ] })
# your new connection String
mongodb://localhost:27001

1.--dbpath:是您的数据路径目录(上面的命令指向当前目录)
1.--replSet=rs0:复制副本名称
1.阅读更多@https://www.mongodb.com/docs/manual/tutorial/deploy-replica-set/
快乐编码:)

5anewei6

5anewei62#

您可以使用“棱镜”:“2.26.0”和“@棱镜/客户端”:“2.26.0”而不是您当前的版本。它们不需要副本集。另外,您必须使用@default(dbgenerated())而不是@default(auto()),两者都与“npx prisma@2.26.0 generate”一起用于此旧版本。

相关问题