Prisma 7 重磅发布:告别 Rust,拥抱 TypeScript,性能提升 3 倍

最近在使用 NestJs 和 NextJs 在做一个协同文档 DocFlow,如果感兴趣,欢迎 star,有任何疑问,欢迎加我微信进行咨询 yunmz777

2025 年 11 月 19 日,Prisma 团队正式发布了 Prisma ORM 和 Prisma Postgres 的最新版本------Prisma 7。在过去的一年中,Prisma 团队始终将开发者体验放在首位,致力于让使用 Prisma 构建应用程序变得更加简单、高效。无论开发者使用何种开发工具,或选择在哪个平台部署,Prisma 7 都将带来卓越的开发体验。

为未来而设计

愿景与承诺

2024 年 12 月,Prisma 团队发布了 Prisma ORM 的未来发展路线图,详细阐述了他们的愿景以及实现这些目标的计划。这不仅仅是一份产品规划文档,更是 Prisma 团队对 Prisma ORM 未来发展的明确承诺,以及他们如何持续支持开发者社区的坚定决心。

与此同时,Prisma 团队还推出了自己的托管 Postgres 服务------Prisma Postgres。这款产品以简洁性和高性能为核心设计理念,旨在为开发者提供一个开箱即用的数据库解决方案,让开发者能够享受到与 Prisma ORM 同样出色的开发者体验。

随着 ORM 路线图的发布和 Prisma Postgres 的推出,Prisma 团队为构建下一代工具奠定了坚实的基础。市场反馈超出了他们的预期:ORM 的市场份额和使用量实现了显著增长,而 Prisma Postgres 在个人项目和商业应用中的采用率也令人瞩目。

重大技术突破

从 Rust 到 TypeScript:一次大胆的架构转型

在 Prisma 6.0.0 发布时,Prisma 团队承诺将带来更好的性能、更强的灵活性以及更完善的类型安全性。为了实现这些目标,他们需要做出一些根本性的改变。

为什么选择离开 Rust?

Prisma 团队做出了一个看似反直觉的决定:将 Prisma Client 从 Rust 迁移到 TypeScript。对于许多人来说,这可能是一个令人困惑的选择,毕竟 Rust 以其卓越的性能而闻名。但在 Prisma 的场景下,性能只是故事的一部分。

使用 Rust 构建客户端的一个显著副作用是,它限制了社区贡献者的参与门槛。如果开发者没有深厚的 Rust 开发经验,想要为 ORM 做出有意义的贡献将变得非常困难。从技术角度来看,Rust 与 JavaScript 运行时之间的通信层比纯 JavaScript 实现要慢得多,同时还会在运行时层面引入额外的依赖关系。

Deno 团队的 Luca Casonato 对此深有感触:

"当我们听说 Prisma 要从 Rust 迁移时,我们意识到不再需要处理原生插件 API,这将让在 Deno 中支持 Prisma 变得简单得多。我们所有人都对此感到非常兴奋!"

迁移带来的显著收益

迁移到纯 TypeScript 客户端为更快的运行时、更小的体积和更简单的部署流程奠定了基础。开发者不再需要担心特定运行时的兼容性问题,也不必担心像 Cloudflare Workers 这样的基础设施提供商对应用大小的限制。

经过持续迭代和优化,Prisma 团队取得了令人瞩目的成果:

  • 体积减少 90%:打包输出大幅缩小
  • 性能提升 3 倍:查询执行速度显著加快
  • 资源占用降低:CPU 和内存利用率大幅下降
  • 部署更简单:Vercel Edge 和 Cloudflare Workers 的部署流程更加顺畅

这些改进都有详尽的基准测试数据支持。更重要的是,开发者无需重构整个应用程序就能享受到这些好处,迁移过程非常简单直接。

知名开发者 Kent C. Dodds 在体验后给出了积极反馈:

"我在几周前完成了升级,整个过程非常顺利。切换到新的无 Rust 客户端是如此简单,这真是太棒了。"

生成代码的新归宿:从 node_modules 到项目源码

工作流程的优化

Prisma 团队认真听取了社区关于生成代码处理方式的反馈,并进行了重大改进。此前,Prisma 习惯在项目的 node_modules 目录中生成客户端代码。虽然这样做让生成的客户端看起来像普通库一样,但随着时间推移,他们发现这种方式严重影响了开发者的工作流程。

当客户端需要更新时,所有应用相关的进程都必须先停止,然后才能重新生成类型。这不仅打断了开发流程,还降低了开发效率。

现在,Prisma 默认在项目源代码目录中生成类型和 Prisma Client。这样一来,开发者现有的开发和构建工具会将其视为应用程序的一部分。当开发者修改模型并运行 prisma generate 时,工具和文件监视器可以立即响应这些变化,保持开发工作流程的连续性。整个 Prisma 配置现在真正成为了项目的一部分,而不再是隐藏在 node_modules 中的"黑盒"。

全新的配置文件系统

Prisma 团队还引入了全新的 Prisma 配置文件,支持动态项目配置。这个配置文件的核心目的是将数据定义与 Prisma 的数据交互方式分离开来。

在此之前,项目配置分散在 Prisma schema 文件或 package.json 中。新的 Prisma 配置文件统一了配置管理,开发者可以在一个地方定义 schema 位置、种子脚本或数据库 URL。由于配置文件支持 JavaScript 或 TypeScript 格式,开发者可以使用 dotenv 等工具进行动态配置,这为开发者提供了更大的灵活性,也符合现代开发工具的标准。

类型系统的性能革命

与 ArkType 的合作

类型安全是 Prisma ORM 的核心优势之一。Prisma 团队不仅要确保提供正确的类型,还要以最高效的方式实现。为了改进类型生成系统,他们与 ArkType 的创建者 David Blass 展开了深度合作,全面评估了类型生成表现。

评估结果令人振奋:

  • Schema 评估类型减少 98%:大幅降低了类型系统的复杂度
  • 查询评估类型减少 45%:查询相关的类型开销显著降低
  • 类型检查速度提升 70%:完整的类型检查过程更加快速

为什么这很重要?

与生态系统中的其他 ORM 相比,Prisma 生成的类型不仅评估速度更快,而且需要更少的类型定义就能为开发者提供有用的 TypeScript 信息。这意味着开发者可以更自信地构建应用程序,因为 Prisma 提供的类型安全不仅快速,而且开销更小。

Prisma Postgres:为所有人打造的数据库服务

不仅仅是 ORM

Prisma 不仅仅是一个 ORM 工具。Prisma 团队推出的托管 Postgres 数据库服务旨在解决开发者在开始使用 Prisma ORM 时面临的首要问题------如何快速获得一个可用的数据库。

技术架构优势

Prisma Postgres 基于由 unikernel microVM 驱动的裸机基础设施构建。这意味着数据库服务不仅启动快速,而且能够持续保持高性能。Prisma 团队始终将开发者体验放在首位,自动处理所有复杂的运维工作,让开发者无需关心服务器配置、资源分配等底层细节。

所有配置和管理工作都由 Prisma 团队负责,Prisma Postgres 与 Prisma ORM 实现了原生集成,为开发者提供与 ORM 同样出色的开发者体验。

极简的启动流程

开始使用 Prisma Postgres 非常简单,只需在终端运行一个命令即可。系统会自动为开发者配置数据库,并提供认领链接。对于在开发工作流程中使用 AI 代理的开发者,Prisma 还提供了专用的 API 和 MCP 服务器,可以在需要时自动创建和管理数据库。

Jason Lengstorf 分享了他的使用体验:

"每当我使用 Prisma 时,我都会按照入门指南安装各种工具,然后才意识到我还需要去获取一个数据库。我总是在这个过程中感到困惑,所以能够如此轻松地创建数据库真是太棒了!"

标准协议支持

Prisma Postgres 并没有止步于简单的数据库托管。Prisma 团队现在采用了标准的 Postgres 连接协议,这意味着更广泛的生态系统工具都可以与数据库通信。无论是 Cloudflare Hyperdrive、TablePlus、Retool,还是其他 ORM 工具,都可以无缝使用 Prisma Postgres。

这一切都得益于 Prisma Postgres 基于标准 Postgres 构建,同时针对最佳使用体验进行了优化。

其他重要更新

这个版本包含了大量改进和新功能,如果一一详述,这篇文章会变得非常冗长。

Prisma 团队花费了大量时间处理积压的问题和功能请求,解决了一些最受社区关注的需求,包括:

  • 映射枚举支持
  • 更新了项目所需的最低 Node.js 和 TypeScript 版本
  • 全新版本的 Prisma Studio(通过 npx prisma studio 访问)

开发者可以在 Prisma 的更新日志中找到此版本的所有详细内容,Prisma 团队还提供了完整的迁移指南帮助开发者顺利升级。

结语

对 Prisma 团队而言,Prisma 7 不仅仅是一个版本发布,更是 Prisma ORM 和 Prisma Postgres 未来发展的基石。他们希望构建的工具能够为开发者提供最佳体验,让开发者能够专注于构建和发布出色的应用程序。

Prisma 团队特别感谢他们令人难以置信的社区,以及所有在预发布阶段提供宝贵反馈的开发者。如果开发者正在尝试 Prisma 7,可以向 Prisma 团队反馈想法和体验。

相关推荐
少卿5 小时前
React Compiler 完全指南:自动化性能优化的未来
前端·javascript
广州华水科技5 小时前
水库变形监测推荐:2025年单北斗GNSS变形监测系统TOP5,助力基础设施安全
前端
广州华水科技5 小时前
北斗GNSS变形监测一体机在基础设施安全中的应用与优势
前端
七淮5 小时前
umi4暗黑模式设置
前端
8***B5 小时前
前端路由权限控制,动态路由生成
前端
bcbnb5 小时前
如何解析iOS崩溃日志:从获取到符号化分析
后端
爱隐身的官人5 小时前
beef-xss hook.js访问失败500错误
javascript·xss
许泽宇的技术分享5 小时前
当AI学会“说人话“:Azure语音合成技术的魔法世界
后端·python·flask
用户69371750013845 小时前
4.Kotlin 流程控制:强大的 when 表达式:取代 Switch
android·后端·kotlin
用户69371750013846 小时前
5.Kotlin 流程控制:循环的艺术:for 循环与区间 (Range)
android·后端·kotlin