用途:辅助在 TypeScript 项目中编写与维护 Drizzle ORM 代码,涵盖 Schema、查询、关系、迁移和数据库连接。使用前先检查项目,读取 package.json 与锁文件确认已安装的 drizzle-orm 和 drizzle-kit 版本,定位现有 Schema、数据库工厂、drizzle.config.* 与迁移目录,并确认所用 SQL 方言与适配器(PostgreSQL、MySQL、SQLite/libsql、D1、Neon 等),避免引入第二套关系 API、迁移流程或连接适配器。
主要能力:按方言模块(pg-core、mysql-core、sqlite-core)定义表与列,使用 .notNull()、.unique()、.references()、主键、索引和显式 onDelete 建模完整性;优先用 typeof users.$inferSelect 类型推断而非重复接口;关系声明与 .references() 外键约束分离,新项目用 defineRelations() 及 r.one、r.many、through,旧 relations() 仅在明确版本迁移时改动;可用关系查询和 SQL 风格查询构建器。
必要用法与限制:写入用 .returning() 仅限支持方言,MySQL 不支持;onConflictDoUpdate/onConflictDoNothing 只针对主键或唯一约束;多写入用 db.transaction(),嵌套用保存点。生产迁移用 drizzle-kit generate 生成并审查 SQL,再经 drizzle-kit migrate 应用,禁止改写已应用迁移。SQLite 需每连接启用外键,布尔常用 integer(..., { mode: "boolean" })。API 细节以已安装版本对应的官方文档为准。