Prisma-Tools迁移指南:从v8到v9的无缝过渡方案
Prisma-Tools迁移指南从v8到v9的无缝过渡方案【免费下载链接】prisma-toolsPrisma tools to help you generate CRUD system for GraphQL servers项目地址: https://gitcode.com/gh_mirrors/pr/prisma-toolsPrisma-Tools是一款帮助开发者为GraphQL服务器生成CRUD系统的强大工具集。随着v9版本的发布它带来了全新的Prisma原生集成体验包括更高效的代码生成流程和增强的类型安全特性。本指南将详细介绍如何从v8平稳迁移到v9版本让你快速掌握新版本的核心优势。图Prisma与GraphQL架构集成示意图展示了v9版本中更紧密的数据流连接为什么选择升级到Prisma-Tools v9Prisma-Tools v9带来了多项革命性改进使GraphQL API开发流程更加顺畅原生Prisma集成作为Prisma生成器运行不再需要单独的CLI命令单一命令工作流prisma generate即可完成所有代码生成任务增强的类型安全为PrismaSelect提供完整的类型定义消除any类型现代化配置系统使用TypeScript配置文件(paljs.config.ts)提供更好的类型提示Prisma 7支持完全兼容最新版Prisma ORM准备工作迁移前的环境检查在开始迁移前请确保你的开发环境满足以下要求Node.js 18.x或更高版本Prisma 7.x或更高版本TypeScript 5.x或更高版本可以通过以下命令检查当前环境版本node -v npx prisma -v tsc -v迁移步骤从v8到v9的完整流程步骤1更新依赖包首先需要移除旧的CLI包并安装新的生成器包# 移除旧的CLI包 npm uninstall paljs/cli # 或全局卸载 npm uninstall -g paljs/cli # 安装新的生成器包 npm install paljs/generator --save-dev # 安装运行时依赖 npm install paljs/plugins paljs/nexus步骤2更新Prisma模式文件在schema.prisma中添加PalJS生成器配置替换原有的CLI生成方式// prisma/schema.prisma generator client { provider prisma-client-js } // 添加PalJS生成器配置 generator paljs { provider paljs-generator output ./generated/paljs // 生成文件的输出目录 config ../paljs.config.ts // 可选指定配置文件路径 } // 数据源和模型定义... datasource db { provider postgresql url env(DATABASE_URL) } // 你的数据模型...步骤3转换配置文件将原有的pal.config.js转换为TypeScript格式的paljs.config.ts新的配置结构更加扁平直观v8配置 (pal.config.js)module.exports { schema: ./prisma/schema.prisma, backend: { generator: nexus, output: ./src/graphql, excludeFields: [password], excludeModels: [{ name: Migration }], excludeFieldsByModel: { User: [internalNotes], }, excludeQueriesAndMutations: [deleteMany], excludeQueriesAndMutationsByModel: { User: [deleteOne], }, }, frontend: { admin: { outPut: ./src/admin, routerType: app, }, }, };v9配置 (paljs.config.ts)import { defineConfig } from paljs/generator/config; export default defineConfig({ // 生成GraphQL相关代码 generateGraphQL: true, // Nexus输出目录 nexusOutput: ./nexus, // 生成类型定义 generateTypes: true, // 生成Admin UI generateAdmin: { enabled: true, output: ./admin, routerType: app, }, // 全局排除字段 excludeFields: [password], // 全局排除查询和变更 excludeQueriesAndMutations: [deleteMany], // 模型特定配置 models: { Migration: { exclude: true }, User: { excludeFields: [internalNotes], excludeQueriesAndMutations: [deleteOne], }, }, });步骤4更新构建脚本简化生成命令只需要使用Prisma自带的生成命令package.json (之前){ scripts: { generate: prisma generate pal g } }package.json (之后){ scripts: { generate: prisma generate } }步骤5更新代码导入和PrismaSelect使用v9提供了完整的类型支持更新你的PrismaSelect使用方式之前import { PrismaSelect } from paljs/plugins; const select new PrismaSelect(info).value; const users await prisma.user.findMany(select as any);之后import { PrismaSelect } from paljs/plugins; import type { ModelsObject } from ./generated/paljs; // 现在有完整的类型支持 const select new PrismaSelectUser, ModelsObject(info); const users await prisma.user.findMany(select.value); // users变量现在有正确的类型推断步骤6运行生成命令完成以上步骤后运行Prisma生成命令npx prisma generate生成的文件将输出到你在schema.prisma中指定的目录默认为./generated/paljs包含以下子目录dmmf/- DMMF数据用于运行时types/- TypeScript类型定义nexus/- Nexus GraphQL类型和解析器admin/- Admin UI相关代码配置选项映射v8到v9的变化为了帮助你快速适应新的配置格式以下是v8和v9配置选项的对应关系v8选项v9选项backend.generator: nexusgenerateGraphQL: truebackend.outputnexusOutputbackend.excludeFieldsexcludeFieldsbackend.excludeModelsmodels: { X: { exclude: true } }backend.excludeFieldsByModelmodels: { X: { excludeFields: [...] } }backend.excludeQueriesAndMutationsexcludeQueriesAndMutationsbackend.excludeQueriesAndMutationsByModelmodels: { X: { excludeQueriesAndMutations: [...] } }frontend.admin.outPutgenerateAdmin.outputfrontend.admin.routerTypegenerateAdmin.routerType常见问题解答 (FAQ)Q: 我还能使用paljs/generator生成Nexus代码吗A: 可以但paljs/generator已被标记为 deprecated。我们建议迁移到新的paljs/generator因为它与Prisma工作流更好地集成提供类型安全的生成辅助工具单一命令生成所有代码Q: paljs/create发生了什么变化A:paljs/create已被弃用。建议使用create-t3-app或create-next-app来搭建新项目然后手动添加PalJS包。Q: PrismaSelect还能正常工作吗A: 是的paljs/plugins中的PrismaSelect功能保持不变。新的生成器增加了类型化辅助工具可以与PrismaSelect一起使用消除any类型。Q: 如何生成SDL文件A: 使用Nexus你可以通过以下方式生成SDLimport { makeSchema } from nexus; import { printSchema } from graphql; import * as types from ./generated/paljs/nexus; const schema makeSchema({ types }); const sdl printSchema(schema);故障排除常见问题及解决方案生成器未找到确保paljs/generator已安装为开发依赖并且node_modules/.bin在你的PATH中。可以通过以下命令检查npm list paljs/generator echo $PATH | grep node_modules配置文件未加载将paljs.config.ts放在与schema.prisma相同的目录中或在生成器配置中指定路径generator paljs { provider paljs-generator output ./generated/paljs config ./custom/path/paljs.config.ts // 指定配置文件路径 }生成文件中的TypeScript错误确保你使用TypeScript 5并配置了正确的tsconfig.json{ compilerOptions: { module: NodeNext, moduleResolution: NodeNext } }总结享受v9带来的增强体验通过本指南你已经成功将Prisma-Tools从v8迁移到v9版本。新的版本带来了更紧密的Prisma集成、更简洁的工作流和更强的类型安全让你的GraphQL API开发更加高效。要了解更多关于v9的新功能请查看官方文档迁移指南详细版v9发布计划生成器包详情现在你可以开始享受Prisma-Tools v9带来的所有优势构建更强大、更类型安全的GraphQL应用【免费下载链接】prisma-toolsPrisma tools to help you generate CRUD system for GraphQL servers项目地址: https://gitcode.com/gh_mirrors/pr/prisma-tools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

上海信奥C++怎么选?这份2026最新硬核择校指南请收好

上海信奥C++怎么选?这份2026最新硬核择校指南请收好

上海信奥C怎么选?这份2026最新硬核择校指南请收好在上海,想给孩子找一家靠谱的信奥C培训机构,难度不亚于一次信息学竞赛的选拔。随着信息学奥赛(信奥)凭借升学优势跻身热门赛道,C作为信奥核心编程语言&…

2026/10/17 14:11:09 阅读更多 →
3个技巧掌握多系统启动:开源CloverBootloader完全实战手册

3个技巧掌握多系统启动:开源CloverBootloader完全实战手册

3个技巧掌握多系统启动:开源CloverBootloader完全实战手册 【免费下载链接】CloverBootloader Bootloader for macOS, Windows and Linux in UEFI and in legacy mode 项目地址: https://gitcode.com/gh_mirrors/cl/CloverBootloader CloverBootloader是一款…

2026/10/18 6:29:01 阅读更多 →
从工具拼接到软件工厂:Gitee DevSecOps 的一体化研发治理实践

从工具拼接到软件工厂:Gitee DevSecOps 的一体化研发治理实践

软件工厂并不是简单地把代码仓库、流水线和测试工具放在同一个页面,而是用统一的人员权限、流程模板、研发数据和交付规则,管理软件从需求提出到版本发布的完整过程。结合 Gitee 官方公开资料与产品界面来看,Gitee 软件工厂的主要技术路径可以…

2026/10/18 6:29:56 阅读更多 →

最新新闻

一阶倒立摆平衡车仿真与GUI调参工具:从建模到源码全解析

一阶倒立摆平衡车仿真与GUI调参工具:从建模到源码全解析

先说个反直觉的结论:做平衡车,最花时间的不一定是焊板子和调实车,而是把一阶倒立摆模型在GUI里跑通。我见过太多人上来就调PID,参数改来改去,最后连车为什么一直朝一个方向冲都说不清楚——根子在于脑子里没有一个能复…

2026/10/18 8:13:12 阅读更多 →
C++ STL系统学习:容器选型、迭代器算法与高频坑位排查

C++ STL系统学习:容器选型、迭代器算法与高频坑位排查

如果你在C的学习路线上已经走过了语法、类与对象、模板这几关,那么标准模板库(STL)大概率是你下一步绕不开的内容。DAY 3.17 这个编号通常来自一套系统化的学习计划,把STL安排在模板之后、并发和方向进阶之前,这个位置…

2026/10/18 8:13:12 阅读更多 →
SpringBoot+Vue智能旅游行程规划系统实战:从CRUD到智能算法

SpringBoot+Vue智能旅游行程规划系统实战:从CRUD到智能算法

1. 从标题拆解出真正的需求:不是做CRUD,而是做"规划"打开需求文档或者任务书,写着"基于SpringBootVue的智能旅游行程规划系统",很多人第一反应是:这不就是一个景点管理订单管理的CRUD吗&#xff1…

2026/10/18 8:13:12 阅读更多 →
WPF LiveCharts 动态折线图实战:线程安全与实时刷新避坑指南

WPF LiveCharts 动态折线图实战:线程安全与实时刷新避坑指南

简介:本资源是面向WPF平台C#开发者的LiveCharts动态折线图实战示例,专为需要实现数据实时可视化、趋势监控或交互式图表功能的中初级开发者设计。压缩包内含67个文件,涵盖11个核心C#源码文件(如MainWindow.xaml.cs、App.xaml.cs&a…

2026/10/18 8:13:12 阅读更多 →
AI写公文如何避免“AI味”?文风建模+仿写智能体实战

AI写公文如何避免“AI味”?文风建模+仿写智能体实战

写公文这件事,大多数同事不是不会写,是架不住“每次都是新任务”。更尴尬的是,很多朋友已经开始用AI帮忙了,但写出来的东西要么是空话堆砌,要么一股“万能模板味”,领导一眼就皱眉。问题不在AI不够聪明&…

2026/10/18 8:13:12 阅读更多 →
从手工到自动:做 PPT 的 10 步改造记录

从手工到自动:做 PPT 的 10 步改造记录

## 背景在团队协作场景里,做 PPT 找模板排版到半夜是效率的主要损耗点。## 核心能力- 文本素材自动梳理大纲- 大纲支持二次编辑- 多套配色模板可选- 渲染16:9标准PPTX文件## 落地场景团队协作等场景都能直接搬进工作流,输入是散乱的原始材料,…

2026/10/18 8:12:12 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →