code-migrationlisted
Install: claude install-skill afine907/skills
# Code Migration
## Goal
框架迁移、语言升级、API 版本迁移的技术方案和执行指南
## Trigger
- 用户要求"迁移代码"、"升级框架"、"Python 2到3"
- 需要从旧框架迁移到新框架
- API 版本需要升级
## 目标
为代码迁移项目提供系统化的策略、执行步骤和验证方法,确保迁移过程可控、可回滚,最大程度降低风险。
## 工作流程
```
评估迁移范围 → 选择迁移策略 → 制定执行计划 → 分步迁移 → 验证 → 回滚预案
```
详见下方各迁移场景的具体指南。
## 触发条件
当用户需要:
- 将代码从旧框架迁移到新框架
- 升级编程语言版本(如 Python 2→3)
- 迁移 JavaScript 到 TypeScript
- 升级 API 版本
- 数据库 Schema 迁移
## 迁移策略
### 1. 绞杀者模式(Strangler Fig Pattern)
逐步替换旧系统组件,新旧系统并行运行,直到旧系统完全被替代。
```
┌─────────────────────────────────────────┐
│ 负载均衡器 / 代理 │
└─────────────────┬───────────────────────┘
│
┌─────────┴─────────┐
│ │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ 新系统 │ │ 旧系统 │
│ (逐步增加) │ │ (逐步减少) │
└───────────────┘ └───────────────┘
```
**适用场景**:
- 大型单体应用迁移
- 需要持续交付的系统
- 不能承受长时间停机
**执行步骤**:
1. 识别系统边界,定义迁移单元
2. 在新旧系统间设置路由层
3. 逐个功能迁移,每次迁移后验证
4. 旧功能下线,清理代码
### 2. 大爆炸模式(Big Bang)
一次性完成全部迁移。
**适用场景**:
- 小型项目或模块
- 新旧系统差异极大,无法并行
- 有充足的时间窗口
**风险**:
- 回滚困难
- 问题集中爆发
- 停机时间长
### 3. 并行运行模式(Parallel Run)
新旧系统同时运行,比对结果,确认无误后切换。
```
请求 ──┬──→ 旧系统 ──→ 结果 A ──┐
│ ├──→ 比对 ──→ 返回结果
└──→ 新系统 ──→ 结果 B ──┘
```
**适用场景**:
- 金融、医疗等对正确性要求极高的系统
- 需要验证新系统行为一致性
## Python 2→3 迁移
### 迁移前准备
```bash
# 1. 代码分析
pip install pylint pyflakes
pylint --py2-only y