SuperAPI AI 工具集

uw-analyze-database

数据与分析

查看项目

更新于 10-30 09:34

技能介绍

用途

uw-analyze-database 用于分析项目的数据库层,覆盖 Schema、迁移、ORM 配置与数据访问模式,并将结果沉淀为结构化文档,便于后续在不同技术栈中重建数据层。

主要能力

  • 以代码侧数据模型为规范:识别 ORM 实体(Drizzle、Prisma、TypeORM、SQLAlchemy、Mongoose、Sequelize、JPA、EF Core),记录字段、类型、关系、默认值与业务规则/不变量,使用代码锚点 id(table:<code-path>:<Name>)作为标题。
  • 物理契约归档:将迁移中的 SQL DDL 作为实体之下的物理契约(on-disk schema)记录,通过 dataModelLinks 与被归并的 db-ddl 关联,不单独为每个迁移的 CREATE TABLE 建标题。
  • SQL-first 回退:无代码侧模型时,直接从迁移/DDL 提取表结构作为规范表候选;若 @unwind/core 或 seeds 不可用(缺少 docs/unwind/.cache/seeds/database.json),回退到传统 SQL-first 流程并在 index.md 中说明。
  • 数据访问分析:列出全部 Repository/DAO/查询模块及其方法签名与源码链接。
  • JSONB/JSON 字段解析:提取 TypeScript 接口或 Zod schema,推断并记录完整嵌套结构。
  • 增量写入:每完成一个部分立即写入文件并同步更新 index.md;支持大规模代码库(20+ 实体)按领域拆分 data-model.md。
  • 刷新模式:目录已存在时对比当前状态,在 index.md 增加“## Changes Since Last Review”章节。

使用方式

  1. 创建目录:mkdir -p docs/unwind/layers/database/,写入初始 index.md(各章节标记 pending)。
  2. 读取 seeds/database.json,逐个实体阅读源码,写入 data-model.md 并更新 index.md。
  3. 为每个实体查找物理 DDL(优先使用已归并的 SQL,或由 ORM 模型生成),写入 schema.md。
  4. 查找 Repository/DAO 模块,记录全部方法签名与源码链接,写入 repositories.md。
  5. 如存在 JSONB/JSON 列,提取类型定义,写入 jsonb-schemas.md。
  6. 最终更新 index.md 的统计与摘要,附 Mermaid erDiagram 实体关系图。

输出结构

docs/unwind/layers/database/ 包含 index.md(概览、实体数、ER 图、章节链接)、data-model.md(规范代码侧实体)、schema.md(各实体物理 SQL DDL 契约)、repositories.md(数据访问模式与查询)、jsonb-schemas.md(复杂字段类型定义)。实体较多时按 domain 拆分文件。

适用场景

  • 需要盘点并文档化现有系统数据模型的团队。
  • 计划以不同技术栈重建数据库、需要保留字段、约束、关系与业务不变量的迁移工作。
  • 需要审查 Repository 层数据访问模式或 JSONB 字段结构的项目。

限制

  • 文档撰写遵循 analysis-principles.md 的完整性、机器可读、链接到源码、无评论、增量写入等原则。
  • 所有表、核心 Repository 函数与 JSONB schema 应标注 [MUST]/[SHOULD]/[DON'T] 标签。
  • 字段级文档要求记录列名与数据库类型、NOT NULL、DEFAULT、UNIQUE、外键及 ON DELETE 行为;索引应记录名称、覆盖列、类型与原因。
  • 资料未提供安装命令、收费模式或平台要求。