【问题标题】:Prisma Postres error prepared statement \"s0\" already existsPrisma Postgres 错误准备语句 \\\"s0\\\" 已经存在
【发布时间】:2023-02-20 10:49:07
【问题描述】:

我有一个 Next.js 项目,我在其中使用 Prisma 从 Postgresql 读取数据。

我有这样的代码:

const rows = await prisma.receipts.findMany({
      where: {
        action_receipts: {
          // https://www.prisma.io/docs/concepts/components/prisma-client/filtering-and-sorting#filter-on-relations
          signer_account_id: {
            equals: accountName,
          },
        },
      },
      orderBy: {
        included_in_block_timestamp: 'desc',
      },
      take: 2, 
    });

我经常收到如下错误:

 error: PrismaClientUnknownRequestError: 
  Invalid `prisma.receipts.findMany()` invocation:
  
  
    Error occurred during query execution:
  ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Error { kind: Db, cause: Some(DbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState("42P05"), message: "prepared statement \"s0\" already exists", detail: None, hint: None, position: None, where_: None, schema: None, table: None, column: None, datatype: None, constraint: None, file: Some("prepare.c"), line: Some(480), routine: Some("StorePreparedStatement") }) }) })

(有时它不是“s0”而是说别的东西,比如“s8”。)

这是什么意思,我该如何避免呢?

如果我停止我的本地服务器并等待一分钟,然后通过yarn dev 重新启动,然后再次尝试我的 Prisma 查询,问题似乎经常消失。但是我忘记了我想要找出并解决的根本原因。

【问题讨论】:

  • 你在使用 pgbouncer 吗?我发现了这个问题 - github.com/prisma/prisma/issues/4752 这描述了您面临的错误。
  • @NurulSundarani 谢谢。我也发现了这个问题,但我从未听说过 pgbouncer 如此怀疑我正在使用它。我不知道它是否会出现在yarn.lock中,我还没有检查过。
  • 你能解决这个问题吗?
  • 我的目的是始终跟进并为我提出的每个问题写一个答案(如果我学会了的话)。所以我怀疑我是否为此找到了一个。

标签: postgresql next.js prisma


【解决方案1】:

我在 superbase 上重新启动了项目并且它起作用了。

转到 supabase 项目文件上的设置,然后单击 restart project

【讨论】:

    猜你喜欢
    • 2011-11-28
    • 2014-12-16
    • 2014-05-09
    • 2015-12-22
    • 2022-01-10
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 2018-04-10
    相关资源
    最近更新 更多