用途:从 schema.prisma 生成真实感种子数据,适用于生成种子数据、创建测试数据、填充数据库等场景。使用前需先读取 config/defaults.md,并按用户配置的技术栈调整模式、导入与代码示例。
主要能力:解析 schema.prisma 中的模型、字段、类型、约束、关系和枚举;根据 @relation 构建有向图并拓扑排序,先建父记录再建子记录;存在循环依赖时采用两遍法,先创建必填字段,再更新可选关系字段。按字段名约定生成真实值,如 firstName、email、phone、title、slug、price、createdAt 等;@unique 值加索引后缀保证唯一;@id @default(cuid()) 与 @default(now()) 可省略交由数据库生成;枚举只用已定义值;密码使用预哈希占位符,绝不明文。
使用方式:输出 prisma/seed.ts,包含 PrismaClient 初始化、按反向依赖顺序清理数据、按依赖顺序 upsert 或 createMany 插入、最后打印统计并断开连接。用户指定数量时按数量生成,默认每个模型 5-10 条;大批量可用 createMany 并包在 prisma.$transaction() 中;用 upsert 保证幂等。
限制:仅面向 Prisma schema;需先读取 config/defaults.md 适配技术栈;循环依赖需两遍处理;必填关系不可为空,可选关系混合连接与 null;更多依赖排序、数据模式与性能提示见 references/seed-patterns.md。