model Category {
id Int @id @default(autoincrement())
name String @map("category_name") @unique
items Item[]
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
@@map("category")
}
model Item {
id Int @id @default(autoincrement())
name String
url String
price Int
priceDiscount Int
category Category? @relation(fields: [categoryId], references: [id])
categoryId Int?
@@map("item")
}
await prisma.item.create({
data: {
id: 1,
name: initialItems[0].name,
url: initialItems[0].url,
price: initialItems[0].price,
priceDiscount: initialItems[0].priceDiscount,
category: {
connect: {
id: initialItems[0].categoryId
}
}
}
})
Error screen
Hello. Data base is PostgreSQL. Prisma is 6.1.0. Typescript gives an error in data field, when i've defined id field for Item. If item's Id not presented, everything is ok
Can you explain me, what's happened. If item's Id is not provided connect to exist category works fine, and typescript doesn't show error. But if item's Id is provided, for avoiding typescript error I should provide categoryId. no error
model Category {
id Int @id @default(autoincrement())
name String @map("category_name") @unique
items Item[]
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
@@map("category")
}
model Item {
id Int @id @default(autoincrement())
name String
url String
price Int
priceDiscount Int
category Category? @relation(fields: [categoryId], references: [id])
categoryId Int?
@@map("item")
}
await prisma.item.create({
data: {
id: 1,
name: initialItems[0].name,
url: initialItems[0].url,
price: initialItems[0].price,
priceDiscount: initialItems[0].priceDiscount,
category: {
connect: {
id: initialItems[0].categoryId
}
}
}
})
Error screen
Hello. Data base is PostgreSQL. Prisma is 6.1.0. Typescript gives an error in data field, when i've defined id field for Item. If item's Id not presented, everything is ok
Can you explain me, what's happened. If item's Id is not provided connect to exist category works fine, and typescript doesn't show error. But if item's Id is provided, for avoiding typescript error I should provide categoryId. no error
It seems like the issue is that you're using connect
property and specifying and ID at the same time. There's an open issue for this.
If you want to specify an ID instead of letting prisma (or the database) auto-generate one for you, you'll have to avoid using "connect". Make the connected record first, then use it's ID as as the categoryId
.
Prisma is an awesome tool, but it does have lots of little quirks like this!