【发布时间】: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