用途
migrate-ops 是一个综合性的迁移操作技能,围绕框架升级、语言版本升级、依赖审计、破坏性变更检测、codemod 与回滚策略展开。它把迁移过程组织成若干决策树和检查清单,帮助开发者判断采用哪种迁移路径以及需要检查哪些环节。资料中标注生态系统事实已核验至 2026-07-05。
主要能力
迁移策略决策
技能按迁移规模给出不同路径:小型库更新(补丁/次版本)采用原地升级,更新依赖、运行测试、部署;大型框架版本升级(如 React 18→19、Vue 2→3、Laravel 12→13)根据代码规模与测试覆盖选择大爆炸式迁移、增量迁移、绞杀者模式或并行运行;语言版本升级(如 Python 3.12→3.14、Node 22→26)采用带 CI 矩阵的原地升级,在新旧版本上同时测试,全部通过后放弃旧版本支持。
框架升级路径
针对不同框架列出检查项与工具:React 18→19 涉及移除 forwardRef 包装、用 <Context> 替代 <Context.Provider>、采用 useActionState/useFormStatus 等,并提供 codemod 命令 npx codemod@latest react/19/migration-recipe;Next.js Pages Router→App Router 涉及目录与文件约定迁移、用异步组件替代 getServerSideProps/getStaticProps、更新数据获取方式等,codemod 为 npx @next/codemod@latest;Vue 2→3 涉及 Composition API、Pinia、事件总线替换、v-model 语法更新,可使用 @vue/compat 迁移构建;Laravel 12→13 涉及 PHP 8.3 最低版本、缓存/Redis 键前缀变化、可选采用原生 PHP 属性与队列路由等;Angular 使用 ng update 与官方更新指南;Django 使用 python -Wd 检查弃用警告并参考发布说明,工具为 django-upgrade。
依赖审计
按生态提供审计工具:JavaScript/Node.js 使用 npm audit、audit-ci、Socket.dev;Python 使用 pip-audit、safety check、pip-audit --fix;Rust 使用 cargo audit、cargo deny;Go 使用 govulncheck、go list;PHP 使用 composer audit、composer outdated;多生态可用 Trivy、Snyk 或 Dependabot。
破坏性变更检测
检测方式包括语义化版本分析、变更日志解析、编译器/运行时警告、codemod 与类型检查。列举的工具涵盖 jscodeshift、ast-grep、rector、gofmt/gofumpt、2to3,以及 TypeScript 的 tsc --noEmit、Python 的 mypy/pyright、Go 的 go vet。
回滚策略
回滚决策树覆盖仅代码变更(git revert、回滚合并提交)、功能开关控制(关闭开关即时回滚)、数据库模式变更(可逆迁移执行 down,不可逆则从备份恢复并重放预写日志)、基础设施/部署(蓝绿、金丝雀、kubectl rollout undo)。
迁移前检查与常见坑点
提供迁移前检查清单,包括测试覆盖率、CI 状态、依赖更新、数据库备份、回滚计划、破坏性变更清单、功能开关、监控告警、性能基线、锁定文件提交等。常见坑点包括一次跨多个主版本升级、未提交锁定文件、未先提交就运行 codemod、忽略弃用警告、未检查传递依赖、假设 codemod 覆盖一切、跳过迁移指南、长期分支迁移、CI 未同时测试两个版本、无备份的数据库迁移、忘记更新 Docker/CI 基础镜像等。
版本校验
技能硬编码了若干目标版本(React 19、Laravel 13、Python 3.14、Node 26、TypeScript 6、Go 1.26、Rust 2024、PHP 8.5),通过 scripts/check-migrate-facts.py 校验:--offline 做结构性检查,--live 依据 endoflife.date 与 npm 解析目标版本是否滞后。规范目标版本列表位于 assets/migrate-facts.json。
使用方式
技能以决策树和命令形式组织,需结合具体生态选用对应工具与命令。参考资料文件包括 references/framework-upgrades.md(约 700 行,覆盖 React、Next.js、Vue、Laravel、Angular、Django 升级路径)、references/language-upgrades.md(约 650 行,覆盖 Python、Node、TypeScript、Go、Rust、PHP 升级路径)、references/dependency-management.md(约 550 行,覆盖审计工具、更新策略、锁定文件、monorepo 依赖、供应链安全)。
适用场景
适用于框架大版本升级、语言版本升级、依赖审计与漏洞修复触发的升级、数据库模式迁移,以及需要回滚预案的迁移项目。资料建议与 testing-ops、debug-ops、git-ops、refactor-ops、ci-cd-ops、container-orchestration、security-ops 等技能组合使用。
限制
资料未提供该技能的收费、价格、平台支持范围与具体使用步骤说明。目标版本以资料所列为准,实际生态最新稳定版可能存在差异,--live 漂移需人工审查而非自动改写。