标签: prisma2

当我想使用 Prisma.schema 中添加的模型时,“属性不存在”

我正在使用 NextJS 框架和 Prisma 开发 ReactJS 项目来管理数据库的连接和查询。

在我的本地项目中,找到了支持模型,当我在 API 中使用它并构建我的项目时,一切正常。

但是,当我将项目推送到生产服务器(Plesk)时,构建会向我显示此打字稿错误,因为它找不到支持模型:

./src/pages/api/support/index.ts:27:26
Type error: Property 'support' does not exist on type 'PrismaClient<PrismaClientOptions, never, RejectOnNotFound | RejectPerOperation | undefined>'.
Run Code Online (Sandbox Code Playgroud)

该路径./src/pages/api/support/index.ts是我要使用支持模型的地方

我的prisma.schema

datasource db {
  provider = "mysql"
  url      = env("DATABASE_CONNECTION")
}

generator client {
  provider = "prisma-client-js"
}

model User {
  id              Int       @id @unique @default(autoincrement())
  gender          String?
  firstName       String
  lastName        String
  email           String    @unique
  phone           String
  birthday        DateTime?
  income          Float? …
Run Code Online (Sandbox Code Playgroud)

next.js prisma prisma-graphql prisma2

30
推荐指数
2
解决办法
3万
查看次数

如何在 prisma ORM 中更新插入多个字段

如何使用一个查询在 prisma ORM 中更新插入多个字段?

我不想一一使用 upsert 字段。我可以通过一个查询更新插入所有这些内容吗?

javascript sql node.js prisma prisma2

25
推荐指数
2
解决办法
2万
查看次数

添加新字段后 Prisma 架构无法正确更新

正如标题所述,我在 Next JS 应用程序中使用 Prisma 2。我有一个非常简单的架构:

  model User {
  id             Int       @id @default(autoincrement())
  firstName      String
  middleName     String?
  firstLastname  String
  secondLastname String?
  email          String
  role           String
  group          Group?    @relation(fields: [groupId], references: [id])
  groupId        Int?
  activity       Activity? @relation(fields: [activityId], references: [id])
  activityId     Int?
  createdOn      DateTime  @default(now())
  updatedOn      DateTime  @default(now())
}

model JobTitle {
  id        Int      @id @default(autoincrement())
  name      String
  createdOn DateTime @default(now())
  updatedOn DateTime @default(now())
}

model Group {
  id        Int      @id @default(autoincrement())
  name      String
  users     User[]
  createdOn DateTime @default(now())
  updatedOn DateTime …
Run Code Online (Sandbox Code Playgroud)

heroku-postgres reactjs next.js prisma prisma2

23
推荐指数
2
解决办法
3万
查看次数

无法在 Prisma 的一个模型中建立两个 1:1 关系。检测到不明确的关系

我试图在 Prisma ORM 的一个模型中建立两个 1:1 关系,但出现以下错误:

验证模型“Person”时出错:检测到不明确的关系。模型中的字段placeOfBirth和字段均指的是。请通过添加 为它们提供不同的关系名称。placeOfDeathPersonPlace@relation(<name>)

我的棱镜架构:

model Place {
    id              Int     @id @default(autoincrement())
    name            String
    persons         Person[]
}

model Person {
    id              Int     @id @default(autoincrement())
    name            String
    placeOfBirthId  Int
    placeOfDeathId  Int
  placeOfBirth    Place   @relation(fields: [placeOfBirthId], references: [id])
    placeOfDeath    Place   @relation(fields: [placeOfDeathId], references: [id])
}
Run Code Online (Sandbox Code Playgroud)

完全不明白。

orm schema database-schema prisma prisma2

16
推荐指数
1
解决办法
7338
查看次数

Prisma客户端查询最新

给出以下架构。如何使用 prisma2 客户端查询每个存储库上的最新提交?

model Commit {
  id   String   @default(uuid()) @id
  date DateTime @default(now())
}

model Branch {
  id           String     @default(uuid()) @id
  commit       Commit     @relation(fields: [commitId],references: [id])
  commitId     String
  repository   Repository @relation(fields: [repositoryId],references: [id])
  repositoryId String
}

model Repository {
  id String @default(uuid()) @id
}

Run Code Online (Sandbox Code Playgroud)

prisma prisma2

14
推荐指数
1
解决办法
2万
查看次数

如何在生产中运行“prismagenerate”?

我对 Prisma 代码生成在生产中的工作原理感到困惑。Prisma CLI 应该安装在 devDependency 中,但该npx prisma generate命令需要在生产中可用,因为生成的代码对于应用程序是必需的。我该如何解决这个问题?我尝试运行npm i --productionnpx prisma generate,这导致了 npx 尝试自动安装 prisma 并获取 Prisma 1 而不是 Prisma 2 的预期问题,然后期待一个不存在的 prisma.yml 文件。

node.js prisma prisma2

14
推荐指数
1
解决办法
2万
查看次数

prisma findUnique 仅采用一个唯一参数

我遇到了一个问题,我需要通过用户名和电子邮件检查用户是否存在,因为两者都是数据库中的唯一字段,但我收到错误。 Argument where of type UserWhereUniqueInput needs exactly one argument, but you provided username and email. Please choose one. 那么,有没有办法只执行一次这个查询呢?而不是像下面这样为每个运行一个

const user = await prisma.user.findUnique({
        where: {
          username,
          email,
        },
      });
Run Code Online (Sandbox Code Playgroud)

不是这样的

const user = await prisma.user.findUnique({
        where: {
          username,
        },
      });

const user = await prisma.user.findUnique({
        where: {
          email,
        },
      });

Run Code Online (Sandbox Code Playgroud)

prisma prisma-graphql prisma2

13
推荐指数
3
解决办法
6万
查看次数

Prisma - 如何使用多个模型中的字段定义复合唯一约束?

我在 Prisma 中的模型关系并不那么简单。用户 --< 注册 >-- 课程,我不知道如何确保课程标题字段在该用户创建的课程中是唯一的。换句话说,我不希望一个用户创建多个具有相同名称的课程。但我希望不同的创建者以相同的名称存在课程。(只有创建者在注册中具有 TEACHER 角色)

我面临的问题是,我不知道在哪里定义唯一属性以及要包含哪些字段。我想要对其进行唯一约束的字段(课程名称、具有教师角色的成员)跨不同的模型。

model User {
  id                Int              @id @default(autoincrement())
  email             String           @unique
  passwordHash      String
  enrollments       Enrollment[]
}

model Course {
  id                Int              @id @default(autoincrement())
  name              String
  members           Enrollment[]
}

model Enrollment {
  role              UserRole         @default(STUDENT)

  // Relation Fields
  userId            Int
  courseId         Int
  user              User             @relation(fields: [userId], references: [id])
  course           Course          @relation(fields: [courseId], references: [id])
  @@id([userId, courseId])
  @@index([userId, role])
}
Run Code Online (Sandbox Code Playgroud)

prisma prisma-graphql prisma2

12
推荐指数
1
解决办法
2万
查看次数

使用 Prisma.js 更改数据库,而无需重置整个数据库

如何在Prisma.js不重置整个数据库的情况下对数据库进行更改?

如果我使用过这个命令

npx prisma migrate dev --name role-makeOptional-NormalizedName
Run Code Online (Sandbox Code Playgroud)

我将丢失数据库中的所有数据,但不会丢失我的数据。

就我而言,我想更改String为文件String?schema.prisma

NormalizedName  String?            @unique @db.VarChar(64)
Run Code Online (Sandbox Code Playgroud)

是否有适当的命令来避免丢失数据?

node.js prisma prisma2

11
推荐指数
1
解决办法
3万
查看次数

单个 Prisma 查询中的 LEFT JOINS 和聚合

我有一个包含多个表的数据库,需要经常查询这些表,LEFT JOIN以便结果包含来自其他表的聚合数据。我的 Prisma 架构的片段:

model posts {
  id                Int      @id @unique @default(autoincrement())
  user_id           Int
  movie_id          Int      @unique
  title             String   @db.Text
  description       String?  @db.Text
  tags              Json?
  created_at        DateTime @default(now()) @db.DateTime(0)
  image             String?  @default("https://picsum.photos/400/600/?blur=10") @db.VarChar(256)
  year              Int
  submitted_by      String   @db.Text
  tmdb_rating       Decimal? @default(0.0) @db.Decimal(3, 1)
  tmdb_rating_count Int?     @default(0)
}

model ratings {
  id         Int       @unique @default(autoincrement()) @db.UnsignedInt
  entry_id   Int       @db.UnsignedInt
  user_id    Int       @db.UnsignedInt
  rating     Int       @default(0) @db.UnsignedTinyInt
  created_at DateTime  @default(now()) @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)

  @@id([entry_id, user_id])
}
Run Code Online (Sandbox Code Playgroud)

如果我想在查询时返回平均评分posts,我可以使用如下查询: …

mysql node.js prisma prisma2

11
推荐指数
2
解决办法
4万
查看次数