mcpField
S
seed

seed

github.com/hainrixz数据与数据库2269 次安装6 天前更新
代码仓库

关于 seed

seed 是只读技能,可根据数据库模型、ORM 模型或迁移文件生成确定性的示例 INSERT 语句,供开发者制作本地开发、测试或 CI 夹具;生成内容不用于生产环境。

主要功能

  1. 01根据模型生成 INSERT
  2. 02按外键依赖安排插入顺序
  3. 03生成确定性示例值
  4. 04支持 SQL 或 JSON 输出
  5. 05报告解析置信度与跳过的表

适用场景

  1. 01创建可重复的本地开发夹具
  2. 02为自动化测试准备种子数据
  3. 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 来创建一个。

要执行的操作

  1. 确定架构路径(从 $ARGUMENTS 获取,或按上述方式检测)。
  2. 运行生成器:
    node scripts/gen-seed.mjs --file <schema> --rows N [--format sql|json]
    
    • --rows N 默认为 5(限制在 1–1000 之间)。--format 默认为 sql;json 会将语句作为数组并附带元数据返回。
    • 脚本会对表进行拓扑排序,确保先插入每个表的外键父表,再插入该表;为外键列填入有效的父表 ID,并跳过自增/identity 主键。
  3. 展示结果:
    • 插入顺序(依赖顺序,父表 → 子表)和每张表的行数。
    • 按上述顺序分组的生成版 INSERT 语句。
    • 解析器的置信度,以及任何被跳过的表或被忽略的循环依赖。
  4. 提议保存到文件(例如 seed.sql 或 fixtures.json)——仅当用户确认路径后才写入。否则直接在回复中展示。

注意事项

  • 设计上具有确定性:使用相同的 --rows 重新运行会得到逐字节相同的输出,因此种子数据便于比较差异且可复现。
  • 值仅为示例占位内容(例如 [email protected] 这样的邮箱、固定时间戳和递增 ID),并非真实数据,也不适用于隐私安全的生产环境。
  • 排序时会忽略循环外键;延迟约束或自引用情况可能需要在生成后手动处理。

**仅用于开发/测试夹具。**切勿将生成的种子数据用于生产数据库。请使用用户所用语言(EN/ES)回复。

评论

支持 Markdown