标签: prisma

添加新字段后 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万
查看次数

从下一个身份验证客户端的会话中获取用户 ID

我将 next-auth 与 Prisma 和 Graphql 一起使用,我按照以下说明相应地设置了适配器和我的模型:https: //next-auth.js.org/adapters/prisma 身份验证有效,但是当我检查会话对象时这里: const { data: session, status } = useSession() 我没有看到身份证 在此输入图像描述

我需要 ID 的原因是为了进行进一步的 GraphQL 查询。我现在使用电子邮件值通过电子邮件获取用户,但拥有可用的 ID 将是更好的选择。

prisma next-auth

23
推荐指数
5
解决办法
4万
查看次数

原因:`object` ("[object Date]") 无法序列化为 JSON。请仅返回 JSON 可序列化数据类型

我正在使用 Prisma 和 Next.js。当我尝试从 Prisma 中检索内容时,getStaticProps它确实获取了数据,但我无法将其传递给主要组件。

export const getStaticProps = async () => {
  const prisma = new PrismaClient();
  const newsLetters = await prisma.newsLetters.findMany();
  console.log(newsLetters);

  return {
    props: {
      newsLetters: newsLetters,
    },
  };
};
Run Code Online (Sandbox Code Playgroud)

正如您在此图中看到的,它正在获取并打印内容。

在此输入图像描述

但是当我通过时,我收到以下错误,将其作为道具传递

Reason: `object` ("[object Date]") cannot be serialized as JSON. Please only return JSON serializable data types.
Run Code Online (Sandbox Code Playgroud)

javascript serializable next.js prisma

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

如何在应用程序目录中的 next js 13 beta 服务器组件中使用 next auth getServerSession

我将 next auth v4 与 next js 13 beta 和服务器组件一起使用,一切正常。但我有一种情况,我需要知道登录的用户 ID,因为我正在使用下一个身份验证,我可以访问会话,我可以使用 useSession() 但随后我需要使该组件成为客户端组件,所以我想在服务器上使用它,我可以在 API 中使用 getServerSession 因为我可以访问 req & res 对象,但在下一个带有新应用程序目录的 js beta 中,我不能这样做。如果您知道如何解决该问题,请告诉我。谢谢

import { getServerSession } from "next-auth";
import { authOptions } from "@/pages/api/auth/[...nextauth]";

const Test = async () => {
    const user_id = 1; // How do I get user id from session, user_id is available in session

    // I don't have access req & res object in server component.
    const data = await getServerSession(request, response, authOptions); …
Run Code Online (Sandbox Code Playgroud)

beta session prisma next-auth next.js13

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

Prisma $queryRaw 具有可变长度参数列表

我将 Prisma 与 Postgres 一起使用。由于在基础表中使用了不受支持的 tsvector 类型,我需要使用 $queryRaw 进行特定查询。在此查询中,我还需要使用“in”语句,其中“in”列表中的项目需要参数化。我已经尝试过这个

const ids = [41, 55]
const result = await prisma.$queryRaw`select * from users where id in (${ids})`;
Run Code Online (Sandbox Code Playgroud)

但我遇到了内核恐慌

PANIC in /root/.cargo/git/checkouts/rust-postgres-dc0fca9be721a90f/8a61d46/postgres-types/src/lib.rs:762:18
expected array type
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个...

const result = await prisma.$queryRaw`select * from users where id in (${ids.join(',')})`;
Run Code Online (Sandbox Code Playgroud)

但后来我收到这个错误...

Raw query failed. Code: `22P03`. Message: `db error: ERROR: incorrect binary data format in bind parameter 1`
Run Code Online (Sandbox Code Playgroud)

我认为 prisma 使用的 sql-template-tag 库有一种支持此功能的方法,因此在安装和导入它之后,我尝试了这个..

const result = await prisma.$queryRaw`select * from users where id in …
Run Code Online (Sandbox Code Playgroud)

postgresql prisma

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

与“ws:<URL>/_next/webpack-hmr”的 WebSocket 连接失败:在建立连接之前 WebSocket 已关闭

您好,我遇到了这个问题,我尝试在 nextjs 中使用 graphql 进行订阅,但是出现了问题,我不知道如何修复它。我遇到 websocket 错误 - “与 'ws:/_next/webpack-hmr' 的 WebSocket 连接失败:WebSocket 在建立连接之前已关闭。”

您可以在此处检查代码 - https://github.com/LoQeN00/messenger-2.0.git

错误

graphql 设置

reactjs graphql graphql-subscriptions next.js prisma

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

未知的二进制目标 debian-openssl-3.0.x 且未提供自定义二进制文件错误命令失败,退出代码为 1

我有什么办法可以解决这个问题吗?我最近更新到 Ubuntu 22.04 在使用 Prisma 时遇到问题。我无法运行我的项目。我使用“@prisma/client”:“2.20.1”

错误:未知的二进制目标 debian-openssl-3.0.x 并且没有提供自定义二进制文件错误命令失败,退出代码为 1。

openssl prisma

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

无法在 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 deleteMany 带有 ID 列表

我想知道Prisma Client中是否有一种方法可以通过id批量删除数据库记录。

像这样的东西似乎不存在:

const idsToDelete = [5, 29, 255]

prisma.post.deleteMany({
    where: {
        id: {
            equals: idsToDelete
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

该文档提到了标量列表过滤器的概念,但这似乎不支持数字列表,或者可能不支持deleteMany.

在幕后,我希望有一个 SQLDELETE ... WHERE IN子句。我不想:

  • 启动一堆单独的 JS Promise
  • 使用特定于数据库的 Prisma 功能(如果 MongoDB 不支持,也可以)
  • 直接写SQL

javascript prisma

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

使用 jest-mock-extended 测试 prisma 时的 Typescript 循环引用

我开始围绕应用程序中的 prisma(v3.6.0) 使用情况编写测试。

为此,我遵循了官方 prisma 页面使用 prisma 进行单元测试,并且我正在使用jest-mock-extended.

我的问题是,在使用模拟的 prisma 函数时出现打字稿错误:

describe('User routes', () => {
    it('should respond success with array of users', async () => {
        prismaMock.user.findMany.mockResolvedValue([]); // <- here is the error
    }
}
Run Code Online (Sandbox Code Playgroud)
Type of property 'AND' circularly references itself in mapped type 
Run Code Online (Sandbox Code Playgroud)

github Testing with prisma上有一些关于这个问题的讨论。我从这次讨论中得到了 3 个选择:

  • 添加"skipLibCheck": true到 tsconfig.json。这破坏了我的代码中的一些内容并且不能解决我的问题
  • 添加了"strictNullChecks": true,也没有效果
  • //@ts-ignore线。这有效地消除了错误,并且测试顺利进行

虽然我能够进行测试,但我不想在测试中到处都忽略这个错误,并且忽略错误只是一个好主意,直​​到它不是。

有人对这个问题有更多信息或建议吗?

testing typescript prisma jest-mock-extended

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