💧
Drizzle · TypeScript ORM

Drizzle ORM 完全指南

TypeScript 优先、零魔法、接近 SQL 的现代 ORM——像写 SQL 一样构建查询,同时享受端到端类型安全

7KB 运行时
零依赖
SQL-like API
类型安全
Edge 友好
7KB 运行时体积
10 核心章节
0 运行时依赖

Drizzle 为什么正在取代 Prisma?

过去几年 Prisma 几乎等同于"TypeScript ORM",但它的问题也越来越明显:需要自己的 schema DSL(不是 TS)、需要运行 prisma generate 生成 client查询引擎是个独立 Rust 二进制(冷启动慢、不适合 Edge 环境)、复杂查询表达力有限(遇到高级 SQL 就要 $queryRaw)。

Drizzle 走了完全相反的路线:Schema 就是 TypeScript(不需要 DSL/代码生成),查询 API 刻意做得像 SQLdb.select().from(users).where(eq(...))),7KB 运行时零依赖——能跑在 Cloudflare Workers、Deno、Bun、Vercel Edge 等所有 JS 运行时。2025 年起 Drizzle 成为 Next.js / Remix / T3 Stack / Bun 教程推荐的默认 ORM。

本教程 10 章从零讲到精通:安装与连接各数据库、Schema 定义、drizzle-kit 迁移、基础 CRUD、Relational Queries、高级查询与 SQL 函数、事务与锁、Drizzle Studio、Edge 运行时部署、与 Prisma 对比迁移。

核心能力

六大特性让 Drizzle 成为 2026 年的默认 TS ORM

📜

Schema 即 TypeScript

表结构用 TS 定义,无需 DSL、无需代码生成,改了立即可用。

🎯

SQL-like 查询

API 刻意镜像 SQL:select/from/where/join/groupBy,所见即所得。

🧬

端到端类型安全

列类型、返回类型、关系推断——全自动,改 schema 后 TS 立刻报错。

🌐

Edge 原生

7KB 无运行时依赖,能跑 Workers / Deno / Bun / Vercel / Lambda。

🔧

drizzle-kit

声明式迁移:对比 schema 与数据库,生成 SQL、推送或生成迁移文件。

🔍

Drizzle Studio

本地 GUI 浏览数据、改记录、看查询,类似 Prisma Studio。

课程目录

10 章从建表到 Edge 部署,覆盖 Postgres/MySQL/SQLite 三大方言

Chapter 01

认识 Drizzle 与安装

Drizzle 的定位、与 Prisma/Kysely/TypeORM 对比、driver 选型(pg/postgres-js/mysql2/better-sqlite3)、第一个连接。

入门 对比
Chapter 02

Schema:TypeScript 定义表

pgTable/mysqlTable/sqliteTable、列类型(text/integer/timestamp/json)、默认值、枚举、引用关系。

Schema 列类型
Chapter 03

drizzle-kit:迁移工作流

drizzle.config.ts、generate(生成 SQL 迁移)、migrate(应用迁移)、push(原型模式直接推送)、studio。

drizzle-kit migrate
Chapter 04

基础 CRUD

insert/select/update/delete、returning、partial select、onConflict/upsert、bulk 插入、RETURNING 类型推断。

CRUD onConflict
Chapter 05

条件与函数:eq/and/or/sql

eq/ne/gt/lt/like/inArray 操作符、and/or/not、sql 模板、aggregate(count/sum/avg)、distinct、orderBy。

where sql 模板
Chapter 06

JOIN 与子查询

innerJoin/leftJoin/rightJoin/fullJoin、alias、$dynamic、with(CTE)、lateral join、子查询嵌入。

JOIN CTE
Chapter 07

Relational Queries

relations 定义、db.query.users.findMany、with 嵌套关系、columns 挑选、where/limit 传递、N+1 vs 单 SQL。

关系 findMany
Chapter 08

事务与锁

db.transaction、isolation level、savepoint、行级锁 for update、并发冲突处理、batch(Edge 批执行)。

transaction
Chapter 09

Edge 运行时与 Serverless

Neon HTTP、Turso libsql、Planetscale HTTP、Cloudflare D1、connection pooling、冷启动优化。

Edge Neon Turso
Chapter 10

从 Prisma 迁移与进阶

drizzle-prisma-generator、关键差异对照、Zod 集成(drizzle-zod)、OpenAPI、seeding、性能调优清单。

迁移 Prisma