【发布时间】:2021-12-21 22:06:24
【问题描述】:
我正在开发一个使用 Graphql Prisma 和 Postgres 作为后端的锻炼应用程序。 到目前为止,我的棱镜架构如下:
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Exercise {
id Int @id @default(autoincrement())
name String
numSets Int
holdTime Int?
owner Workout? @relation(fields: [workoutId], references: [id])
workoutId Int?
}
model Workout {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
category String
exercises Exercise[]
}
该模式定义了一个 Workout 对象,该对象接受一个类别和一个练习列表。我正在尝试使用 Prisma 的嵌套创建查询创建包含对象列表的锻炼,但是未创建锻炼列表。我无法判断我的架构或脚本是否有问题。
我用来测试创建的脚本是:
const { PrismaClient } = require("@prisma/client")
const prisma = new PrismaClient()
async function main() {
const newWorkout = await prisma.workout.create({
data: {
category: 'Push',
exercises: {
create: [
{
name: "pushup",
numSets: 5
},
{
name: "headstand",
numSets: 3,
holdTime: 30
}
]
}
}
})
console.log(newWorkout)
const workout = await prisma.workout.findUnique({
where: {
id: 1
}
})
console.log(workout.exercises)
}
main()
.catch(e => {
throw e
})
.finally(async () => {
await prisma.$disconnect()
})
打印语句的输出:
console.log(newWorkout): "{ 编号:1, 创建于:2021-11-09T07:03:40.844Z, 更新时间:2021-11-09T07:03:40.848Z, 类别:“推” }"
console.log(workout.exercises): “未定义”
【问题讨论】:
标签: postgresql prisma prisma-graphql