关于 seed
seed 是只读技能,可根据数据库模型、ORM 模型或迁移文件生成确定性的示例 INSERT 语句,供开发者制作本地开发、测试或 CI 夹具;生成内容不用于生产环境。
主要功能
- 01根据模型生成 INSERT
- 02按外键依赖安排插入顺序
- 03生成确定性示例值
- 04支持 SQL 或 JSON 输出
- 05报告解析置信度与跳过的表
适用场景
- 01创建可重复的本地开发夹具
- 02为自动化测试准备种子数据
- 03根据模型生成按依赖排序的插入语句
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hainrixz/ claude-db --skill seed安装后在 Claude Code 中输入/seed确认已加载。
详细介绍
/claude-db:seed
根据架构生成感知外键且具有确定性的示例/种子 INSERT 语句。只读——绝不会连接数据库或写入数据库。输出仅供开发/测试使用:根据行索引生成可预测的值(不使用随机数),适用于测试夹具、本地开发和 CI,绝不可用于生产环境。
$ARGUMENTS = <path-to-schema> [flags]。目标可以是架构/DDL、ORM 模型或迁移文件。如果未提供路径,则在工作目录中检测(查找 *.sql、schema.prisma、models.py 和迁移目录)。如果没有找到任何内容,请明确说明,并建议指定一个文件,或运行 /claude-db:design 来创建一个。
要执行的操作
- 确定架构路径(从
$ARGUMENTS获取,或按上述方式检测)。 - 运行生成器:
node scripts/gen-seed.mjs --file <schema> --rows N [--format sql|json]--rows N默认为 5(限制在 1–1000 之间)。--format默认为sql;json会将语句作为数组并附带元数据返回。- 脚本会对表进行拓扑排序,确保先插入每个表的外键父表,再插入该表;为外键列填入有效的父表 ID,并跳过自增/identity 主键。
- 展示结果:
- 插入顺序(依赖顺序,父表 → 子表)和每张表的行数。
- 按上述顺序分组的生成版
INSERT语句。 - 解析器的置信度,以及任何被跳过的表或被忽略的循环依赖。
- 提议保存到文件(例如
seed.sql或fixtures.json)——仅当用户确认路径后才写入。否则直接在回复中展示。
注意事项
- 设计上具有确定性:使用相同的
--rows重新运行会得到逐字节相同的输出,因此种子数据便于比较差异且可复现。 - 值仅为示例占位内容(例如
[email protected]这样的邮箱、固定时间戳和递增 ID),并非真实数据,也不适用于隐私安全的生产环境。 - 排序时会忽略循环外键;延迟约束或自引用情况可能需要在生成后手动处理。
**仅用于开发/测试夹具。**切勿将生成的种子数据用于生产数据库。请使用用户所用语言(EN/ES)回复。
评论
支持 Markdown