用途:Drizzle ORM 是 TypeScript 优先的 SQL ORM,主打编译期类型安全、类 SQL 语法与零运行时开销,适合边缘运行时和无服务器环境,支持 PostgreSQL、MySQL、SQLite。
主要能力:安装核心包 npm install drizzle-orm,按数据库选择驱动(pg、mysql2、better-sqlite3),迁移工具用 npm install -D drizzle-kit。用 pgTable 等定义表与列类型(serial、text、integer、boolean、timestamp、json、uuid 等),支持唯一约束、默认值、枚举与 json 类型标注,并可用 $inferSelect、$inferInsert 推断 TypeScript 类型。通过 relations 定义一对一、一对多、多对多关系,用 db.query 配合 with 加载关联数据。查询支持 select、insert(returning)、update、delete,以及 eq、ne、gt、like、inArray、isNull、and、or 等条件,支持 join、groupBy、count、orderBy、limit、offset 与事务(db.transaction,自动回滚)。逐条列出迁移配置与常用命令 drizzle-kit generate、migrate、introspect、studio。
使用方式:先定义 schema.ts 与 client.ts(drizzle(pool, { schema })),再在业务代码中调用 db 执行查询;迁移通过 drizzle.config.ts 指定 schema、out、dialect、dbCredentials,然后生成并应用 SQL。
限制与注意:资料提及应避免对 JSON 列使用 any/unknown 而不做类型标注、避免拼接原始 SQL 字符串(有注入风险)、多步修改应使用事务、生产查询需分页,大表查询应指定列,并注意外键与高频查询列索引。资料还给出与 Prisma 的体积、冷启动、查询速度等对比数据,以及若干相关技能(typescript、nextjs、prisma、sqlalchemy)的说明。未提供的部分:许可协议、官方定价、版本号与维护状态等事实暂未提供。