首页
/ Prisma ORM 6.7.0 发布:无 Rust 引擎时代来临

Prisma ORM 6.7.0 发布:无 Rust 引擎时代来临

2025-05-31 22:13:45作者:幸俭卉

Prisma 是一个现代化的数据库工具链,它通过直观的数据建模语言和类型安全的查询构建器,让开发者能够更高效地与数据库交互。作为 Node.js 和 TypeScript 生态中备受欢迎的 ORM 解决方案,Prisma 持续推动着开发者体验的革新。

无 Rust 引擎的 Prisma ORM(早期体验)

在本次 6.7.0 版本中,Prisma 团队迈出了重要一步:开始提供不依赖 Rust 引擎的 ORM 解决方案。这一架构变革并非简单的语言迁移,而是将原本用 Rust 编写并作为独立二进制文件部署的 Query Engine,替换为更轻量高效的 Query Compiler 架构。

对于 PostgreSQL 和 SQLite 用户,现在可以通过在客户端生成器中添加 queryCompilerdriverAdapters 特性标志来体验这一新架构:

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["queryCompiler", "driverAdapters"]
  output          = "../generated/prisma"
}

配置完成后,开发者需要安装相应的驱动适配器(如 PostgreSQL 的 @prisma/adapter-pg),然后通过以下方式实例化 PrismaClient:

import { PrismaPg } from '@prisma/adapter-pg'
import { PrismaClient } from './generated/prisma'

const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
const prisma = new PrismaClient({ adapter })

这一变化不仅简化了架构,还带来了显著的性能提升,为 Prisma 的未来发展奠定了更坚实的基础。

better-sqlite3 JavaScript 驱动支持(预览)

6.7.0 版本新增了对 better-sqlite3 包的驱动适配器支持,使开发者能够以更原生的 JavaScript 方式与 SQLite 数据库交互。要使用这一功能,开发者需要:

  1. 启用 driverAdapters 预览特性
  2. 安装 @prisma/adapter-better-sqlite3 适配器

实例化方式如下:

import { PrismaBetterSQLite3 } from '@prisma/adapter-better-sqlite3';
import { PrismaClient } from './generated/prisma';

const adapter = new PrismaBetterSQLite3({
  url: "file:./prisma/dev.db"
});
const prisma = new PrismaClient({ adapter });

这一改进为 SQLite 用户提供了更多选择,同时也体现了 Prisma 对 JavaScript 生态更深入的整合。

多文件 Prisma 架构正式发布

prismaSchemaFolder 特性从预览阶段进入正式可用状态,标志着 Prisma 对大型项目更好的支持能力。开发者现在可以像组织代码一样组织数据模型,将单一 schema 文件拆分为多个逻辑单元:

prisma/
├── schema.prisma        # 数据源和生成器配置
├── models/
│   ├── posts.prisma     # Post 模型定义
│   └── users.prisma     # User 模型定义

这种模块化的组织方式特别适合大型项目,使团队能够更清晰地管理复杂的数据模型,同时提高协作效率。

生成输出拆分优化(预览)

新引入的 prisma-client 生成器解决了长期以来困扰大型项目的一个痛点:它将生成的 Prisma Client 库拆分为多个文件,避免了单一大型文件导致的编辑器性能问题。生成的文件结构现在更加合理:

generated/
└── prisma
    ├── client.ts
    ├── commonInputTypes.ts
    ├── enums.ts
    ├── index.ts
    ├── internal/
    │   ├── class.ts
    │   └── prismaNamespace.ts
    ├── models/
    │   ├── Post.ts
    │   └── User.ts
    └── models.ts

此外,新生成器还确保了生成文件不会引发 ESLint 和 TypeScript 错误,进一步提升了开发体验。

总结

Prisma ORM 6.7.0 的发布标志着该项目在架构现代化和开发者体验优化方面迈出了重要步伐。从 Rust 引擎的逐步淘汰,到对原生 JavaScript 驱动的更好支持,再到项目组织方式的改进,这一版本为 Prisma 用户带来了全方位的提升。特别是无 Rust 引擎的实现,不仅简化了架构,还为未来的性能优化和功能扩展开辟了新的可能性。对于正在使用或考虑使用 Prisma 的开发者来说,6.7.0 版本无疑值得关注和尝试。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
260
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
854
505
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
254
295
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
331
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
397
370
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
21
5