drizzle

395
0
0
最后修改于

Drizzle ORM 是一个轻量级、TypeScript-first、采用 “类 SQL” 语法的 Headless ORM。

1. TypeScript 原生 (TypeScript-first)#

  • 极致的类型安全:定义的数据库表结构(Schema)会自动推导出 TypeScript 类型。
  • 无需重度代码生成:不像 Prisma 需要在非 TS 的 .prisma 文件中定义模型再编译,Drizzle 直接用纯 TypeScript 代码定义 Schema。

2. 崇尚 “SQL 哲学” (If you know SQL, you know Drizzle)#

这是它与 TypeORM 或 Sequelize 最大的不同。传统的 ORM 往往试图把你从 SQL 中抽象出来(用面对对象的方法操作数据),而 Drizzle 的理念是:拥抱 SQL

  • 它的 API 设计几乎是一对一映射标准 SQL 语法的。
  • 你写 Drizzle 代码就像在使用具备 TS 类型检查的 SQL 语句,这被称为 Query Builder(查询构建器) 模式。

3. 轻量与边缘计算友好 (Edge-Ready)#

  • 无引擎包袱:Prisma 底层依赖一个用 Rust 编写的庞大查询引擎,导致在 Serverless / Edge 环境(如 Cloudflare Workers, Vercel Edge)部署时经常遇到冷启动慢或体积超标的问题。
  • Drizzle 是零依赖的纯 JavaScript / TypeScript 库,极其轻量,能在任何支持 JS 的地方运行(Node.js, Bun, Deno, Edge Runtime)。

4. 包含两个核心组件#

在概念上,Drizzle 并不是单一的一坨工具,它主要分为两部分:

  • Drizzle ORM:负责在代码里写查询、操作数据库(CRUD)。
  • Drizzle Kit:负责数据库迁移(Migration)的 CLI 工具。它会读取你写的 TS Schema,然后自动生成对应的 SQL 迁移脚本,并应用到数据库中。
drizzle