SuperAPI AI 工具集

peach-gen-db

通用与其它

查看项目

更新于 10-15 21:40

技能介绍

用途:依据已确认的 Spec 或用户直接确定的表定义,生成 dbmate 迁移文件与 DDL,服务 PostgreSQL/MySQL 建表与结构变更。触发关键词包括“建表”“生成 DB schema”“生成迁移”。

主要能力:先读取 api/src/environments/env.local.yml 的 DATABASE_URL 判定数据库类型,PostgreSQL 走 type-mapping.md 的 PostgreSQL 段,MySQL 走 MySQL 段;参照 ddl-template.md 生成 DDL,遵循 comment-guide.md 写详细列注释,把可选值/状态值代码化写入注释。

规则:不创建外键约束,只建列,引用完整性由应用层处理;索引按数据量与程序特性最小化设置。仅当输入为已确认 Spec,或存在明确的 DB_CHANGE_REQUIRED 请求时,才创建 api/db/migrations/[timestamp]create[表名]_table.sql。结构模糊时不擅自决定,输出 DB_DECISION_REQUIRED 并中止迁移生成;该情形不属于 Ralph Loop 处理范围。开发中如需补列、改列、加索引、加状态值,由 team-dev 以 DB_CHANGE_REQUIRED 表格报告,再由本技能或 peach-db-migrate 生成迁移;若 schema 文件与实际库不一致,先用 peach-db-extract-schema 更新。

使用方式:输入可为 Spec 文档路径,或直接给出表名、说明与列定义(列名、类型、是否必填、默认值、注释)。生成后运行 cd api && bun run db:up-dev 应用迁移,并自动提取生成 api/db/schema/[域]/[表名].sql;完成后检查状态迁移完整性、INSERT/UPDATE 所需列、历史表(_hist、_log)审计追踪是否充分,以及 DB_CHANGE_REQUIRED 的 TEST_ID 与影响层是否写入注释或报告。

适用场景:新表结构落地、结构变更迁移、状态值编码与列注释规范统一。

限制:不生成外键;不处理 Spec 未确认的模糊判断;未说明是否支持 PostgreSQL/MySQL 之外的其他数据库;具体环境路径、命令与参考文档以资料所载为准。