我遇到了一个问题,在
create
调用中将一个模型连接到另一个模型中的多个项目似乎会引发以下错误:
Invalid `prisma.movie.create()` invocation:
Error occurred during query execution:
ConnectorError(ConnectorError {
user_facing_error: None, kind: QueryError(Error {
kind: Db, cause: Some(DbError {
severity: "ERROR", parsed_severity: None, code: SqlState("42601"),
message: "syntax error at or near \"ON\"", detail: None, hint: None,
position: Some(Original(93)), where_: None, schema: None, table: None,
column: None, datatype: None, constraint: None,
file: Some("scan.l"), line: Some(1006), routine: Some("scanner_yyerror")
})
})
})
const genresData = genres.map((genre) => ({ name: genre.name }));
await prisma.movie.create({
data: {
title: details.title,
description: details.overview,
// ...
genres: {
connect: genresData,
},
},
select: {
tmdbId: true,
title:true,
// ...
},
});
假设
Genre
模型有一个独特的字段,name
。
奇怪的是,在我的本地计算机上一切似乎都工作正常,但在托管我的应用程序的服务器上却不然。
我似乎已经解决了这个问题。
就我而言,我在本地计算机和服务器上运行的 PostgreSQL 版本之间存在差异。
我的服务器运行的是 postgresql-9.2,而我在本地使用 postgresql-13, 所以升级我服务器的 Postgres 版本解决了这个问题。
我通过从数据库 URL 字符串末尾删除“:6543/postgres”来修复它。
Before:
DATABASE_URL="postgres://postgres.cbdysefhsdfknrssdfxfsplka:[email protected]:6543/postgres"
After:
DATABASE_URL="postgres://postgres.cbdhekfhcknrsdxfplka:[email protected]