
流程图说明
这张流程图展示了 MySQL2PG 项目的完整迁移流程,包含 8 个主要阶段:
主流程(从上到下):
1. 阶段 0:启动 & test_only 判断
- 如果 test_only: true → 测试连接 (<1s) → 退出
- 否则 → 继续完整流程
2. 阶段 1:读取 MySQL 元数据
- 获取表/视图/索引/函数/用户/权限定义
- 应用白名单/黑名单过滤
3. 阶段 2:转换表结构 DDL (绿色)
- 解析 MySQL CREATE TABLE
- 40+ 字段类型映射
- 生成 PostgreSQL 兼容 DDL
4. 阶段 3:转换视图 View
- MySQL → PostgreSQL 语法转换
- 支持排除列表 exclude_view_list
5. 阶段 4:同步数据 (核心阶段,橙色标注性能优化)
- 批量读取 50000 行/批
- 10 协程并发
- pgx.CopyFrom 批量插入
- 5-8x 吞吐量提升
6. 阶段 5:转换索引 Indexes
- 主键/唯一/普通/全文索引
- 数据同步后重建
7. 阶段 6:转换函数 Functions
- 50+ 函数映射
- 支持排除列表 exclude_function_list
8. 阶段 7:用户 & 权限转换 (紫色)
- MySQL 用户 → PostgreSQL 角色
- 保留密码哈希 + 表级 GRANT
9. 数据验证 (决策点)
- 行数对比:MySQL vs PostgreSQL
- 一致 → 完成
- 不一致 → 报告差异