SuperAPI AI 工具集

drizzle-migration-conflict

编程与开发

查看项目

更新于 10-16 05:54

技能介绍

用途:在多开发者仓库中协助诊断、修复和预防 Drizzle Kit 迁移冲突。Drizzle 迁移同时包含 SQL 与迁移快照,安全做法取决于迁移目录结构、drizzle-kit 版本和 git 状态。

适用场景:拉取、合并、rebase 或 PR 更新后迁移文件、_journal.json 或 snapshot.json 冲突;drizzle-kit check 报不可交换迁移或目录冲突;团队需要安全修复流程;设计 CI 或合并队列策略以防重复冲突。

四种模式:Diagnose(默认,只读,可运行 git status、git ls-files -u 和辅助脚本,不运行 drizzle-kit check、类型检查或测试);Repair(需明确授权后才写入文件并执行 drizzle-kit generate/check);CI hardening(只验证工作流语法与逻辑,不连数据库);Explain(概念性回答)。

安全规则:除非用户明确要求并确认目标,不得运行 drizzle-kit migrate、drizzle-kit push、种子脚本或任何连接数据库的命令;不得删除迁移文件、重写 _journal.json 或执行 git checkout --ours 等操作;不推荐用 drizzle-kit push 作为生产修复方案;--ignore-conflicts 仅用于已知误报;保留 schema 源码改动。

仓库探查与结构:先收集 git 状态、drizzle.config.*、package.json 脚本及依赖版本,识别迁移输出目录。辅助脚本以只读方式运行:python3 <skill-dir>/scripts/check_drizzle_migrations.py --root .,可用 --config 与 --migrations-dir 指定;多配置或输出时使用。结构分为 legacy(meta/_journal.json、快照与根级 SQL)与文件夹式(每个迁移含 migration.sql 与 snapshot.json),不明或混合结构须停止并报告歧义。

修复原则:先解决 schema 源码冲突,以父分支迁移历史为准;优先丢弃并重新生成迁移产物,而非手改 journal 或快照;分层验证,先无数据库结构检查,再确认配置不指向生产后运行 check,最后在检查脚本与数据库目标后跑测试。

限制:无法保证重新生成的迁移在未经目标数据库与部署流程审查前是生产安全的;不执行 DB 相关命令;仅聚焦 Drizzle Kit 迁移冲突,不涉及通用 schema 设计或查询优化。报告结论取值:NO_CONFLICT_FOUND、SAFE_TO_REGENERATE、NEEDS_USER_CONFIRMATION、BLOCKED_BY_AMBIGUITY。