先不要按“字段重要性”投票,而要把每个字段放回它支撑的页面动作里判断:如果删掉它,哪个前台流程会断、哪个后台对账会缺证据。字段迁不进去通常不是技术容量问题,而是旧值语义和新结构不兼容;决定保留项的依据应该是“这个字段是否仍被读取、被谁读取、缺失后能否用其他数据重建”。
打开旧库的字段清单,对每个字段只问三个问题:有没有代码在查它?有没有页面或导出在显示它?有没有人靠它做历史追溯?三个都否,基本可以直接放弃迁移,只保留一份只读快照备查。只要有一个“是”,就进入下一步判断,而不是立刻决定搬或删。
这里有个容易踩的坑:字段在旧后台“有人看过”不等于新系统必须保留。若它只用于人工核对,而核对依据已能从订单号、时间戳或附件重建,那它的迁移优先级可以降到最低。反过来,一个从没在页面上出现的字段,若被外部对账脚本按名称读取,就必须保留原名或提供映射。
面对迁不进去的字段,常见两种取舍:保留旧字段并做兼容层,或只迁必要值并重建新字段。两者不是对错关系,而是适用条件不同。
判断的关键证据是“谁在按字段名读取”。去代码库和导出脚本里搜字段名,比问业务方“这个字段重要吗”更可靠,因为记忆会偏向最近用过的功能,而代码不会。
假设旧系统有个 customer_level 字段,存的是“普通/银牌/金牌”文本,新系统只接受数字等级。可以这样处理:
这个顺序的意义在于:先确认读取方,再确认可推导性,最后才决定是兼容还是重建。任何一步出现“无法映射且无人能解释”,都应暂停该字段的迁移,把它标为待确认,而不是默认丢弃。
确定保留项后,别只交一张字段列表。每个保留字段至少写清三件事:缺失后哪个动作会失败、由谁负责确认、验证方式是什么。例如“保留 invoice_no:缺失后财务无法按旧编号对账;由财务确认;验证方式是抽一批旧订单核对编号能否查到”。
对于决定不迁的字段,也要留下处理记录:是丢弃、归档为只读快照,还是转成备注文本。这样做的实际影响是,后续有人发现某个报表缺列时,能快速判断是“当初决定不迁”还是“迁移漏了”,避免重复排查。
迁移完成后,如果出现以下信号,说明原决定需要复核:外部对账开始报字段缺失;客服频繁询问某个已删字段的历史值;新结构里同一含义出现多个不一致的写法。这些信号不等于当初判断错了,而是说明读取方发生了变化,或者旧值语义比预想更复杂。此时应回到“谁在读取”这一步重新确认,而不是直接恢复全部旧字段。
把字段决策落到具体页面和具体读取方上,保留项就不再是拍脑袋的取舍,而是一份能验证、能追责、能随读取方变化而调整的处理方案。