新系统开发得欢,快上线了才认真看旧数据:三年的Excel台账,日期格式有五种,客户名称「张总公司」「张总公司(张总)」混着写,还有三分之一单元格是合并的。客户一句「这些都要导进去」,工期当场多出两周。数据库设计阶段把迁移功课做足,能少掉一大半这样的惊喜。
先花半天摸清旧数据底细
动手前先抽样看,别凭想象。重点是三样:必填字段缺失多少、重复数据怎么算、格式乱到什么程度。摸完底,和客户逐项确认清洗规则——同名客户是合并还是保留、缺电话的记录导不导、历史订单要不要关联到新客户档案,这些规则只有客户能拍板。提前白纸黑字确认下来,能避免上线后无穷无尽的扯皮。
迁移脚本要能重跑
迁移几乎不可能一次成功,脚本必须设计成可重复执行:导入前先清掉本次导入的数据再重来,而不是跑一次留一半脏数据。每一步记日志,导入了多少条、跳过多少条、失败多少条,一目了然。验收时客户随机抽十条,和旧台账对着核一遍,这个动作必须有,抽不出错的迁移才算过关。
备份和对照期,一步都别省
上线前旧数据全量备份,旧系统别急着关,保留只读权限跑一到两个月的对照期,新系统数据有疑点随时回查。另外新表设计时留source_id之类的字段记旧系统编号,对账、追溯全靠它,这个字段是迁移场景的标配。
再补一个日期格式的故事,你就知道清洗规则多重要。一份台账里同一列混着2024/5/1、2024-05-01、5月1日、二〇二四年五月甚至5.1,导入脚本得写五套解析,还得防着5.1被当成数字5.1。后来规矩定成:迁移前客户先按模板整理一遍,整理不动的由脚本兜底,两边分工写进确认单,一次跑通,谁也别甩锅。这类脏活看着小,漏了一条就是一个下午。
两条建议:合同里把「数据迁移」单列一条,写清包含几轮清洗和验证,别含在「系统开发」四个字里含糊过去;上线时间给迁移和验证至少留一周。比格网络做老系统升级时,迁移脚本和清洗规则确认单都是标准交付,数据库设计阶段多想一步,迁移时就少熬一夜。