SuperAPI AI 工具集

schema-migration

数据与分析

查看项目

更新于 10-16 06:46

技能介绍

用途:在应用数据库 schema 迁移前做只读分析,识别数据丢失与破坏性变更风险。适用场景包括分析 DDL 迁移、对比两个 schema 版本找破坏性变更、审查 PR 中的 ALTER TABLE / CREATE TABLE 改动、验证模型重构不破坏列契约。不适用于编写新模型、分析 SQL 逻辑变更的下游影响、查询优化。

主要能力:altimate_core_migration(old_ddl, new_ddl, dialect) 检测类型收窄(如 VARCHAR(100) -> VARCHAR(50) 截断风险)、新增 NOT NULL 列但无 DEFAULT、删除有值列、删除唯一/检查约束、不可逆类型变更、索引删除等。altimate_core_schema_diff(schema1, schema2) 对比 YAML/JSON schema,返回新增/删除/修改的表与列、类型与约束变更、破坏性变更检测。schema_diff(old_sql, new_sql, dialect) 对比 SQL 模型的列级破坏性变更,返回删除列(BREAKING)、类型变更(WARNING)及基于编辑距离的潜在重命名匹配。

使用方式:DDL 迁移先读取迁移文件,旧 schema 为当前状态,新 schema 为应用后状态;dbt 模型变更可用 git show HEAD:<path> 获取旧版本;schema YAML 读取两版文件。随后调用上述工具并汇总输出,按 BREAKING、WARNING、SAFE 分级,给出处理建议;dbt 模型重构时再结合 dbt-analyze 检查下游引用。命令示例:/schema-migration migrations/V003__alter_orders.sql;/schema-migration models/staging/stg_orders.sql;/schema-migration --old schema_v1.yml --new schema_v2.yml。

限制:仅做只读分析,不自动修复或应用迁移;下游影响需借助其他技能;具体支持方言、依赖安装与运行环境资料暂未提供。