Hi guys Im trying to seed a database, but the seco...
# orm-help
j
Hi guys Im trying to seed a database, but the second message from User 2 is never created, what Im i doing wrong?? Do I need to create a message instead of trying to do all together? I simplified this, I wanted to create much more for testing.... Heres the code: SCHEMA:
model Users {
 
id            Int             @id @default(autoincrement())
 
email         String          @unique
 
name          String          @db.VarChar(255)
 
conversations Conversations[]
 
messages      Messages[]
}
model Conversations {
 
id       Int        @id @default(autoincrement())
 
name     String     @db.VarChar(255)
 
messages Messages[]
 
users    Users[]
}
model Messages {
 
id             Int           @id @default(autoincrement())
 
message        String        @db.Text
 
userId         Int
 
user           Users         @relation(_fields_: [userId], _references_: [id])
 
conversationId Int
 
conversation   Conversations @relation(_fields_: [conversationId], _references_: [id])
}
SEED:
Copy code
wait prisma.users.create({
    data: {
      email: '<mailto:user1@user.com|user1@user.com>',
      name: 'User 1',
      conversations: {
        create: {
          name: 'Conversation 1',
          messages: {
            create: {
              message: 'Message 1',
              userId: 1,
            },
          },
        },
      },
    },
  })

  await prisma.users.create({
    data: {
      email: '<mailto:user2@user.com|user2@user.com>',
      name: 'User 1',
      conversations: {
        connectOrCreate: {
          where: { id: 1 },
          create: {
            name: 'Conversation 1',
            messages: {
              create: {
                message: 'Message 2',
                userId: 2,
              },
            },
          },
        },
      },
    },
  })
1
m
I'm just guessing here that since you're using
connectOrCreate
it connects to the Conversation with
id=1
and doesn't fire the whole remaining
create
👍 1
j
I've tried also with create, the problem is that he doesnt create the second message from user2 in conversation 1
m
Maybe try like this (I have typed this quickly, might be too many braces or some spelling error)
Copy code
await prisma.users.create({
    data: {
      email: '<mailto:user2@user.com|user2@user.com>',
      name: 'User 2',
      messages: {
        create: {
          message: 'Message 2',
          userId: 2,
          conversation {
            connect {
              id: 1
            },
          },
        },
      },
    },
  })
j
ok thx ill try it 🙂
thx @Maciek K , the connect was outside in conversation, but I got there... Thx again 😉
Copy code
await prisma.users.create({
    data: {
      email: '<mailto:user2@user.com|user2@user.com>',
      name: 'User 2',
      conversations: {
        connect: {
          id: 1,
        },
      },
      messages: {
        create: {
          message: 'Message 2',
          conversationId: 1,
        },
      },
    },
  })
👍 1