【发布时间】:2021-09-03 18:43:37
【问题描述】:
我的 Postgres 数据库中有一个 User、UserProfile 和 Post 模型。 User 和 UserProfile 相互依赖。我正在尝试创建一个User,它会自动创建一个UserProfile,但我似乎无法找到如何自动为UserProfile 关系假设User 的ID,我正在使用UUID对于User 模型。
架构模型
model User {
id String @id @default(uuid())
createdAt DateTime @default(now())
username String @unique @db.VarChar(20)
emailEncrypted String @unique
emailIv String @unique
password String
isMod Boolean @default(false)
isAdmin Boolean @default(false)
emailConfirmed Boolean @default(false)
profile UserProfile?
}
model UserProfile {
user User @relation(fields: [id], references: [id])
id String @unique
posts Post[]
comments Comment[]
}
model Post {
id String @id @default(uuid())
createdAt DateTime @default(now())
title String @db.VarChar(300)
caption String @db.VarChar(1000)
upvotes Int @default(0)
downvotes Int @default(0)
comments Comment[]
author UserProfile @relation(fields: [authorId], references: [id])
authorId String
}
查询
const user = await prisma.user.create({
data: {
username,
emailEncrypted: encrypted,
emailIv: iv,
password: hashedPassword,
profile: {
create: {}, // create a UserProfile that assumes the created user's UUID as a relation
},
},
select: {
id: true,
},
});
如您所见,我尝试使用create: {} 来假设用户的UUID,但它无法创建实际的UserProfile,只是User,这当然会破坏系统。
【问题讨论】:
标签: node.js postgresql prisma