You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Prisma 2/3与Nexus Schema生成中同时获取自动CRUD与ondelete cascade能力

兼容自动CRUD与参照完整性的Nexus+Prisma版本组合及方案

你可以直接使用nexus-prisma@0.35.0 + @prisma/client@3.15.2 + prisma@3.15.2的版本组合,完全覆盖你的两个核心需求:

  • 该版本的nexus-prisma已经将原prisma-nexus-plugin的experimentalCrud能力整合为稳定的内置CRUD生成功能,不再受旧版本2.23.0的Prisma版本限制,兼容Prisma 3.x全版本
  • Prisma 3.x全版本都完整支持参照完整性、onDelete cascade等关联级联操作配置,不需要额外做兼容处理

配置步骤

如果之前使用了旧版prisma-nexus-plugin,需要先卸载旧依赖,再安装上述版本的新依赖

  • 第一步:安装对应版本依赖
npm install nexus-prisma@0.35.0 @prisma/client@3.15.2
npm install -D prisma@3.15.2
  • 第二步:在schema.prisma中配置生成器
generator nexusPrisma {
  provider = "nexus-prisma"
}

generator client {
  provider        = "prisma-client-js"
  referentialIntegrity = "prisma"
}
  • 第三步:Nexus代码中直接调用生成的CRUD能力,无需手动编写解析器
import { objectType, queryType, mutationType } from 'nexus'
import { User, Post } from '.prisma/nexus'

const User = objectType({
  name: 'User',
  definition(t) {
    t.field(User.id)
    t.field(User.name)
    t.field(User.posts) // 关联字段直接复用生成的定义,对应解析器自动生成
  }
})

const Query = queryType({
  definition(t) {
    t.crud.user()
    t.crud.users() // 自动生成单查、列表查询能力,自带过滤、分页、排序逻辑
  }
})

const Mutation = mutationType({
  definition(t) {
    t.crud.createOneUser()
    t.crud.updateOneUser()
    t.crud.deleteOneUser() // 自动生成增删改能力,原生适配Prisma的级联删除逻辑
  }
})

如果你不需要Nexus的高度自定义能力,还可以选择Prisma官方的GraphQL API生成工具,直接基于schema.prisma一键生成完整可用的GraphQL服务,连基础的类型定义代码都不需要手动编写。

内容的提问来源于stack exchange,提问作者dsmurl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:57:03