schema-first、类型安全的 Node.js/TypeScript ORM——一份 schema.prisma 生成完整类型的 Client,Migrate 管迁移演进,Studio 可视化看数据
Prisma 是 Node.js/TypeScript 生态中最流行的 schema-first ORM:你在一份 schema.prisma 文件里用它自己的声明式 DSL 描述数据模型,运行 prisma generate 后得到一个完全类型安全的 Client——所有查询的入参、返回值都自动推断,改了 schema 重新生成,IDE 立刻感知变化。它由三件套构成:Prisma Client(类型安全查询)、Prisma Migrate(声明式迁移)、Prisma Studio(可视化数据 GUI)。
Prisma 支持 PostgreSQL / MySQL / SQLite / MongoDB / SQL Server / CockroachDB 等多种数据源。它的强项是开发体验:自动补全、清晰的关系 API、优雅的迁移工作流、开箱即用的 Studio。老实说,相比同站的 Drizzle(TS 即 schema、零代码生成、7KB Edge 原生),Prisma 需要独立的 DSL 与 generate 步骤、运行时更重、历史上查询引擎是 Rust 二进制(新版已推出纯 JS/WASM 引擎与 Accelerate 改善 Edge/Serverless 体验)。两者各有取舍——追求极致自动化与成熟生态选 Prisma,追求轻量贴近 SQL 选 Drizzle。
本教程 10 章从零讲到生产:初始化、schema 建模、关系、Migrate 迁移、CRUD、进阶查询、事务与原始 SQL、$extends 等高级特性、框架集成与 Serverless、部署与工程化实战。
六大特性让 Prisma 成为团队协作型项目的默认 ORM
一份声明式 schema 作为单一事实来源,人类可读、易 review,模型/关系一目了然。
prisma generate 产出全类型 Client,查询入参与返回值自动推断,杜绝拼写与类型错误。
声明式迁移:改 schema → migrate dev 自动生成 SQL 迁移文件,生产用 migrate deploy。
浏览器 GUI 浏览、编辑、筛选数据,改记录、跟关系跳转,本地开发利器。
PostgreSQL / MySQL / SQLite / MongoDB / SQL Server 一套 API,切库只改 datasource。
Client Extensions:加计算字段、结果扩展、模型方法、query 拦截,实现软删除等模式。
10 章从初始化到生产部署,覆盖 PostgreSQL/MySQL/SQLite/MongoDB
ORM 概念、Prisma 三件套(Client/Migrate/Studio)、vs Drizzle/TypeORM、prisma init、连接数据库。
datasource/generator、model、字段类型、@id/@default/@unique、@map、枚举。
一对多/多对多/一对一、@relation、隐式 vs 显式 M2M、级联删除、自引用关系。
migrate dev、迁移文件、migrate deploy(生产)、db push(原型)、schema drift、reset。
create/findUnique/findMany/update/delete、select/include、类型推断与生成类型。
where 过滤器、排序分页、聚合 count/aggregate/groupBy、关系查询、嵌套写入 nested writes。
$transaction(顺序/交互式)、$queryRaw/$executeRaw、乐观并发、批量操作。
Client 扩展 $extends、软删除、全文搜索、JSON 字段、计算字段、多 schema。
Next.js/Express/NestJS 集成、单例 PrismaClient、连接池 & Serverless(Accelerate/Data Proxy)、边缘部署。
生产迁移策略、seeding、Prisma Studio、性能调优(N+1/索引)、监控、Docker、部署 checklist。