项目复盘 · 发布 2026年5月22日
数据迁移复盘:十万条数据的三次重跑
第一次跑出错,第二次跑对不上数,第三次才通过。每次失败都暴露了不同的问题。
这是一个旧系统替换项目,需要迁移十万条客户与合同数据。原计划两天完成,实际用了十天,但最终上线时数据零差异。
三次失败的原因
第一次:字符集不一致,部分中文客户名称变成乱码。源库是 latin1,目标库是 utf8mb4。
第二次:金额精度丢失。源字段是浮点,目标字段是定点小数,四舍五入造成一分钱差异,累积起来对不上。
第三次:合同关联关系错误。旧系统用字符串存客户编号,存在前后空格,匹配失败。
做法上的收获
每次重跑前先清空目标表,保证幂等,避免残留数据干扰判断。
写一份核对脚本,统计行数、金额合计、关键字段空值率,跑完自动生成报告。
迁移日志保留原始值,出问题时能追溯是哪条记录、哪个字段。
迁移时间几乎总是被低估。把核对脚本当成第一优先级,比优化迁移速度更重要。