用途:为 Cloudflare D1 数据库生成正确的 Drizzle ORM schema。D1 基于 SQLite,但存在关键差异,直接套用标准 SQLite 写法会产生隐蔽 bug,该技能用于规避这些问题。
主要能力:生成 D1 正确的列模式 schema 文件、关系定义、类型导出、drizzle.config.ts 配置与迁移脚本,并输出 DATABASE_SCHEMA.md 文档。
关键 D1 差异:外键始终开启且无法关闭;无布尔类型,需用 integer({ mode: 'boolean' });无 datetime 类型,需用 integer({ mode: 'timestamp' });绑定参数上限为 100(影响批量插入);JSON 始终可用(json_extract、->、->>);单线程,一次只能执行一个查询。
使用方式:先描述数据模型(表、关系、索引),再生成 schema,添加 relations,导出类型($inferSelect / $inferInsert),配置 drizzle.config.ts,并在 package.json 添加迁移脚本:"db:generate": "drizzle-kit generate"、"db:migrate:local": "wrangler d1 migrations apply DB --local"、"db:migrate:remote": "wrangler d1 migrations apply DB --remote",本地与远程都需执行后再测试。运行时用 drizzle(env.DB, { schema }) 初始化。
批量插入:因参数上限 100,需按 BATCH_SIZE = Math.floor(100 / COLUMNS_PER_ROW) 分批。
限制:资料未提供收费、平台支持范围等额外信息。