Prisma缺少争论

发布于 2025-02-12 22:53:11 字数 2306 浏览 0 评论 0原文

我是我的schema.prisma文件,我有这2个模型:

model User {
  id              String @id @default(uuid()) @db.Uuid
  firstName       String @map("first_name") @db.VarChar(40)
  lastName        String @map("last_name") @db.VarChar(40)
  email           String @unique @db.Citext
  phone           String @db.VarChar(60)
  dialCode        String @map("dial_code") @db.VarChar(5)
  password        String @db.VarChar(500)
  twoFactorSecret String @db.VarChar(300)
  roleId          String @map("role_id") @db.Uuid

  role              Role                   @relation(fields: [roleId], references: [id])
  customPermissions UserCustomPermission[]

  updatedAt DateTime @default(now()) @updatedAt @map("updated_at") @db.Timestamptz(6)
  createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6)

  @@unique([dialCode, phone], map: "phone_number_unique")
  @@map("user")
  UserAction UserAction[]
}

model UserAction {
  id           String @id @default(uuid()) @db.Uuid
  userId       String @map("user_id") @db.Uuid
  method       String @db.VarChar(120)
  url          String @db.VarChar(120)
  userAgent    String @db.VarChar(120)
  requestBody  Json?
  responseBody Json?

  user User @relation(fields: [userId], references: [id])

  updatedAt DateTime @default(now()) @updatedAt @map("updated_at") @db.Timestamptz(6)
  createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6)
}

应该是一对一的连接,但是当触发函数创建记录时,我会在终端中发出此警告:

async createRecord({userId, method, url, userAgent, requestBody, responseBody}) {
    return this.prisma.userAction.create({
      data: {userId, method, url, userAgent, requestBody, responseBody}
    })
  }

实际上:

+   user: {
+     create?: UserCreateWithoutUserActionInput | UserUncheckedCreateWithoutUserActionInput,
+     connectOrCreate?: UserCreateOrConnectWithoutUserActionInput,
+     connect?: UserWhereUniqueInput
+   },
?   id?: String,
?   updatedAt?: DateTime,
?   createdAt?: DateTime
  }
}

Argument user for data.user is missing.

Note: Lines with + are required, lines with ? are optional.

实际上 : ,一切似乎都很好,但是我想知道如何解决此问题。我猜想,创建了2个表之间的连接不正确,但是我以前从未使用过prisma,所以我真的不知道错误在哪里。

那么,我该如何解决呢?提前致谢!

I my schema.prisma file I have those 2 models:

model User {
  id              String @id @default(uuid()) @db.Uuid
  firstName       String @map("first_name") @db.VarChar(40)
  lastName        String @map("last_name") @db.VarChar(40)
  email           String @unique @db.Citext
  phone           String @db.VarChar(60)
  dialCode        String @map("dial_code") @db.VarChar(5)
  password        String @db.VarChar(500)
  twoFactorSecret String @db.VarChar(300)
  roleId          String @map("role_id") @db.Uuid

  role              Role                   @relation(fields: [roleId], references: [id])
  customPermissions UserCustomPermission[]

  updatedAt DateTime @default(now()) @updatedAt @map("updated_at") @db.Timestamptz(6)
  createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6)

  @@unique([dialCode, phone], map: "phone_number_unique")
  @@map("user")
  UserAction UserAction[]
}

model UserAction {
  id           String @id @default(uuid()) @db.Uuid
  userId       String @map("user_id") @db.Uuid
  method       String @db.VarChar(120)
  url          String @db.VarChar(120)
  userAgent    String @db.VarChar(120)
  requestBody  Json?
  responseBody Json?

  user User @relation(fields: [userId], references: [id])

  updatedAt DateTime @default(now()) @updatedAt @map("updated_at") @db.Timestamptz(6)
  createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6)
}

It is supposed to be one-to-many connection, but I have this warning in terminal when trigger function that creates record:

async createRecord({userId, method, url, userAgent, requestBody, responseBody}) {
    return this.prisma.userAction.create({
      data: {userId, method, url, userAgent, requestBody, responseBody}
    })
  }

And this warning:

+   user: {
+     create?: UserCreateWithoutUserActionInput | UserUncheckedCreateWithoutUserActionInput,
+     connectOrCreate?: UserCreateOrConnectWithoutUserActionInput,
+     connect?: UserWhereUniqueInput
+   },
?   id?: String,
?   updatedAt?: DateTime,
?   createdAt?: DateTime
  }
}

Argument user for data.user is missing.

Note: Lines with + are required, lines with ? are optional.

Actually, everything seems to be working fine, but I am wondering on how to fix this. I guess, that connection between 2 tables was created incorrect, but I have never worked with prisma before, so I don't really know where error is.

So, how can I fix this? Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文