先给结论:不要按字段数量决定去留,而按“这个字段离开旧系统后,还能不能支撑一项正在发生的业务动作”来分层。能支撑的进新库并保留历史值,只用于内部追溯的转成只读归档,完全依赖旧程序运行时的字段则留在旧系统,不强行迁。下面按两种条件展开。
判断依据不是字段看起来重不重要,而是它是否还被某个页面、表单回显、订单状态或后台操作读取。只要还有一处读取,迁入缺失就会直接表现为页面空白、流程中断或数据对不上。
实际动作可以这样安排:先做一次字段级读取清单,把每个字段对应的页面或流程写清楚,再决定迁移方式。假设某旧站的产品表里有“规格备注”字段,前台详情页会显示它,后台发货单也会打印它,那么这个字段就属于必须保留项。迁移时如果新系统没有同名字段,应新建一个通用文本字段承接,而不是把内容拼进主描述里,否则后续按规格筛选会失效。
这一步的结果会直接影响下一步:读取清单里出现次数多的字段,应该优先安排人工核对;只出现一次的字段,可以先迁移再抽查。两类字段的处理顺序不同,返工成本也不同。
有些字段的存在只是因为旧程序需要它,比如旧系统内部的排序权重、缓存标记、临时状态位、旧版编辑器的格式标记。这类字段一旦离开原程序就没有意义,强行迁入只会让新库多出一批无人维护的空列。
处理方式是把它们留在旧系统,同时对旧系统做只读处理,保留查询能力。需要核对历史记录时回旧库查,而不是在新库里造一个来源不明的副本。这样做的代价是两套系统短期内并存,但好处是新库结构干净,后续加字段、改流程不会被历史包袱拖住。
需要提醒的是,抓取量下降或某接口请求归零,并不能单独证明这些字段已经无用。也可能是旧页面被下线、入口被改、访问路径变化,或者只是统计口径调整。判断字段是否真的退出使用,要靠读取清单和业务确认,不能只看一个指标。
把候选字段分成三类,每类对应不同的证据来源:
如果某个字段同时出现在前台和旧程序里,按前台优先处理,旧程序那部分逻辑在新系统里重新实现,而不是把旧逻辑原样搬过来。这个取舍的关键在于:新系统的运行方式可能和旧系统不同,照搬逻辑往往会在上线后暴露新的例外。
假设旧站有 40 个产品字段,其中 12 个被前台详情页读取,8 个被后台发货单读取,剩下 20 个只被旧程序用于排序和缓存。按上面的规则,前 20 个进入新库并保留历史值,后 20 个留在旧系统。迁移后如果发现某个“只被旧程序读取”的字段其实还影响前台排序,那说明读取清单漏了一处,应回到清单补录,而不是直接把这个字段加回新库。这个例子的数字只用于说明比较方法,不代表任何真实项目。
小范围试迁时,个别字段看起来可以丢掉,因为样本页面少、人工能兜住。但规模化之后,同样的字段会在大量页面上同时缺失,人工补不回来。所以试迁阶段要刻意挑读取路径最多、流程最复杂的样本,而不是挑最简单的页面。
另一个例外是历史值本身不完整。如果旧字段只有近期数据、早期记录为空,迁入后会出现同一字段新旧混杂。这时应保留字段结构,但对空值做明确标记,不要用默认值填充,否则后续无法区分“原本没有”和“迁移丢失”。
把保留项定下来之后,下一步是给每个保留字段写一行迁移说明:来源字段、目标字段、是否保留历史值、由谁核对。这份说明会在上线后成为排查依据,而不是迁完就作废的中间产物。