mongodbnext.jsprisma

Prisma Mongodb can't create a user model


So I am using Prisma for the first time and my provider is mongodb and when I want to create a model it throws me an error

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

I am using Prisma in a nextjs app and I put the code inside the API pages

My DATABASE_URL is mongodb://localhost:27017/threadzees

Code :

await prisma.user.create({
      data: {
        username,
        email,
        avatar: "1",
        createdAt: new Date(),
      },
    });

How do I fix this issue?


Solution

  • I'm Running Mongodb 4+ version I solved it as below As the error describes you need to create a replica. Either you can use cloud based Mongo or locally you can create a replica like below.

    # 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 : Is your data path directory (above command points to current directory)
    2. --replSet=rs0 : Replica name
    3. Read more @ https://www.mongodb.com/docs/manual/tutorial/deploy-replica-set/

    Happy coding :)