使用嵌套连接创建的 prisma 抛出错误

Posted

技术标签:

【中文标题】使用嵌套连接创建的 prisma 抛出错误【英文标题】:prisma create with nested connect throws error 【发布时间】:2021-10-05 13:52:36 【问题描述】:

我遇到了一个问题,在 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

奇怪的是,在我的本地机器上似乎一切正常,但在托管我的应用程序的服务器上却没有。

【问题讨论】:

嗨,我来自 Prisma。在 Prisma 存储库中似乎有一个 existing issue 对此我们无法重现。请您执行以下操作,以便我们更好地提供帮助: 1. 以任何方式帮助我们重现问题(我们可以运行的代码效果最佳)。 2. 提供有关您的生产服务器/数据库的更多信息,特别是它可能与您的开发设置有何不同。 3. 将您的问题作为评论重新发布在我上面链接的问题中,以便我们可以更好地查看它/在问题解决后让您更新。谢谢! 【参考方案1】:

我似乎已经解决了这个问题。

就我而言,我在本地计算机和服务器上运行的 PostgreSQL 版本存在差异。

当我在本地使用 postgresql-13 时,我的服务器正在运行 postgresql-9.2, 所以升级我的服务器的 Postgres 版本解决了这个问题。

【讨论】:

以上是关于使用嵌套连接创建的 prisma 抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

Prisma 嵌套创建引发未知 arg 错误,而 prisma 示例工作

连接字符串出错,如何将 Prisma 连接到 Azure SQL 数据库

Nexus-prisma:排序嵌套连接

使用 Prisma 的嵌套创建查询返回未定义

Prisma 抛出错误“TypeError: cannot read property findmany of undefined”

使用 prisma,如何从嵌套写入中访问新创建的记录(先更新,然后在其中创建)