
大家好 这里是「代码简单说」,欢迎大家关注同名公众号,不定时更新更多实用有趣的教程 也欢迎大家在评论区一起讨论交流!~
SEO关键词:Drizzle ORM教程、TypeScript ORM、Node.js ORM框架、Cloudflare Workers数据库、Serverless ORM、PostgreSQL ORM、MySQL ORM、SQLite ORM、Drizzle Kit、Drizzle Studio
最近在做一个 Cloudflare Workers 项目时,需要寻找一个既轻量又支持 TypeScript 类型推导的 ORM。传统 ORM 虽然功能丰富,但很多时候体积较大、配置复杂,在 Serverless 环境下并不友好。
后来发现了一个越来越火的 ORM —— Drizzle ORM。
根据 State of DB 数据库开发者调查,Drizzle 已经成为许多开发者新项目中的首选 ORM 之一。它不仅支持 PostgreSQL、MySQL、SQLite,而且天然适配 Cloudflare Workers、Vercel、Supabase、Neon、Turso 等现代云数据库平台。
今天就来详细介绍一下这个号称 7KB超轻量级ORM 的项目。

Drizzle ORM 是一个现代化的 TypeScript ORM 框架。
项目地址:
名称 | 地址 |
|---|---|
官网 | https://orm.drizzle.team |
文档 | https://orm.drizzle.team/docs/overview |
GitHub | https://github.com/drizzle-team/drizzle-orm |
Discord | https://driz.link/discord |
官方定义:
Headless ORM for NodeJS, TypeScript and JavaScript
即:
面向 Node.js、TypeScript 和 JavaScript 的无头 ORM 框架。
与 Prisma、TypeORM 等传统 ORM 不同,Drizzle 更像是一层轻量级的 SQL 类型安全封装。
其核心理念:
Drizzle ORM 压缩后体积仅:
≈ 7.4 KB相比一些大型 ORM:
ORM | 大小 |
|---|---|
Drizzle ORM | ~7.4KB |
Prisma Client | 数MB |
Sequelize | 较大 |
TypeORM | 较大 |
并且:
0 Dependencies没有任何运行时依赖。
优势:
Drizzle 支持:
例如:
PostgreSQL
Neon
Supabase
Vercel Postgres
AWS Data API
Xata例如:
MySQL
PlanetScale
TiDB例如:
SQLite
Turso
Cloudflare D1
FlyIO LiteFS支持矩阵:
数据库 | 支持 |
|---|---|
PostgreSQL | ✅ |
MySQL | ✅ |
SQLite | ✅ |
Neon | ✅ |
Turso | ✅ |
PlanetScale | ✅ |
Supabase | ✅ |
Cloudflare D1 | ✅ |
Vercel Postgres | ✅ |
AWS Data API | ✅ |
这是 Drizzle 最大亮点之一。
官方明确表示:
Serverless-ready by design即:
从设计之初就是为 Serverless 场景打造。
支持:
示意图:
Drizzle ORM
│
┌──────────────┼──────────────┐
│ │ │
Node.js Workers Deno
│ │ │
PostgreSQL D1 SQLite对于现代前端开发者而言非常友好。
Drizzle 最大卖点之一就是:
Type-safe SQL既保留 SQL 语法能力。
又拥有完整类型推导。
例如用户表:
import {
pgTable,
serial,
varchar
} from "drizzle-orm/pg-core";
export const users = pgTable("users", {
id: serial("id").primaryKey(),
name: varchar("name", {
length: 255,
}),
});无需手写:
interface User {
id: number;
name: string;
}Drizzle 自动生成:
type User并保持同步。
避免:
数据库字段变了
TypeScript类型忘记改的问题。
查询数据:
const result = await db
.select()
.from(users);生成SQL:
SELECT * FROM users;条件查询:
import { eq } from "drizzle-orm";
const result = await db
.select()
.from(users)
.where(eq(users.id, 1));对应:
SELECT *
FROM users
WHERE id = 1;既保持 SQL 可读性。
又拥有 TypeScript 类型检查。
Drizzle 支持关联关系定义。
例如:
users
posts
comments关系配置:
relations(users, ({ many }) => ({
posts: many(posts),
}));查询:
const result =
await db.query.users.findMany({
with: {
posts: true,
},
});类似:
JOIN但开发体验更好。
除了 ORM 本体。
Drizzle 还提供:
Drizzle Kit数据库迁移工具。
npm install drizzle-kitnpx drizzle-kit generate生成:
drizzle/
├─ 0001_init.sql
├─ 0002_user.sqlnpx drizzle-kit migrate自动同步数据库结构。
如果说 Drizzle Kit 是数据库迁移工具。
那么:
Drizzle Studio就是数据库管理面板。
功能包括:
类似:
phpMyAdmin
TablePlus
DBeaver但更加轻量。
由于很多前端开发者都在接触 Workers。
这里举一个简单示例。
安装:
npm install drizzle-orm连接 Cloudflare D1:
import { drizzle } from "drizzle-orm/d1";
export default {
async fetch(request, env) {
const db = drizzle(env.DB);
const users =
await db.select().from(usersTable);
return Response.json(users);
}
};整个过程非常自然。
没有额外适配层。
没有复杂配置。
开箱即用。
很多开发者会问:
Drizzle和Prisma选哪个?简单对比:
对比项 | Drizzle | Prisma |
|---|---|---|
类型安全 | ✅ | ✅ |
学习成本 | 低 | 中 |
SQL控制能力 | 高 | 中 |
运行体积 | 极小 | 较大 |
Serverless支持 | 优秀 | 一般 |
冷启动性能 | 优秀 | 一般 |
数据库迁移 | ✅ | ✅ |
Cloudflare Workers | 非常友好 | 需额外处理 |
根据近两年数据库开发生态的发展趋势:
开发者越来越关注:
性能
类型安全
Serverless
Edge Runtime而 Drizzle 恰好覆盖了这些需求。
它不像传统 ORM 那样试图隐藏 SQL。
而是在 SQL 与 TypeScript 之间建立了一层高效桥梁。
这种设计让它既具备:
ORM开发效率又保留:
原生SQL灵活性因此受到越来越多开发者欢迎。
Drizzle ORM 可以理解为:
一个专门为现代 TypeScript 生态打造的轻量级 ORM。
核心优势:
✅ 仅约 7.4KB 体积
✅ 零依赖
✅ 完整 TypeScript 类型推导
✅ PostgreSQL / MySQL / SQLite 全支持
✅ Cloudflare D1、Neon、Supabase、Turso 原生支持
✅ Serverless 与 Edge Runtime 友好
✅ Drizzle Kit 数据迁移工具
✅ Drizzle Studio 数据管理界面
如果你的项目是:
那么 Drizzle ORM 值得优先体验一次。
它可能会成为未来 TypeScript 数据库开发领域最具竞争力的 ORM 之一。