Prisma ORM 表生成的名称错误

问题描述 投票:0回答:1

我在 Express 应用程序中使用 Prisma ORM。我有一个名为“sessions”的复数表和一个使用 @@map 映射到表名称的单数定义,如下所示

model Session {
  sid String  @db.VarChar(100) @id 
  sess Json
  expire DateTime @default(now()) 

  @@map(name: "sessions")
}

但是,当我尝试使用它时,它向我展示:

error: relation "session" does not exist
    at /usr/src/app/node_modules/.pnpm/[email protected][email protected]/node_modules/pg-pool/index.js:45:11
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async PGStore._asyncQuery (/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/connect-pg-simple/index.js:322:21)

我已经生成了好几次客户端,但仍然如此。我没有找到任何解释,而且我无法找到代码的生成位置,因此我无法弄清楚为什么我的 Session 对象没有映射到“会话”而不是“会话”

任何帮助将不胜感激。

注:

我正在使用节点 20.18.0、express 4.21.1、prisma 5.21.1、prisma-client 5.21.1

顺便说一句,我已经生成了客户端并创建了表。这根本不是“哦,我忘记在数据库上创建表”的问题。事实上,还有另一个模型 User,以同样的方式映射到表 users,并且效果很好。

prisma
1个回答
0
投票

好吧,我明白了。该问题与 Prisma 无关,而是与 Express-Session 有关。 express-session 处理名为“session”的表,没有会话。我不知道是否可以更改名称,但我看不出这样做的理由。因此,我只是更改了迁移的名称,再次生成表,删除了映射,然后就成功了。

© www.soinside.com 2019 - 2024. All rights reserved.