先给结论:当旧系统字段无法完整迁入时,决定保留项的依据不是“字段看起来重不重要”,而是这个字段是否仍被前台展示、后台检索或下游流程实际依赖。只要一个字段同时满足“有真实数据”“有明确消费方”“迁移后仍可被正确解释”三个条件,就应优先保留;只满足其中一两个的,通常应降级为备注或归档,而不是硬塞进新结构。这个结论有一个重要反例:如果该字段是历史审计、财务对账或合同存证的一部分,即使前台从不展示、后台也很少查询,也不能按“无消费方”处理,必须单独保留原始值并锁定写入权限。
旧系统迁移中最常见的失误,是把所有字段放在同一张清单里逐个勾选。更有效的做法是先分类,再决定取舍。
分类之后,保留项的判断会从“凭感觉”变成“按依赖关系”。一个字段如果同时出现在多个分类里,按更严格的那一类处理。
对每个候选字段依次问三个问题,答案决定它的去向。
三个问题都通过,字段进入保留清单;只通过前两个,进入待观察清单;只通过第一个,进入归档清单。这个顺序能避免把“暂时没人用”误判成“永远没人用”。
假设一个旧内容系统里有 audit_state 和 editor_note 两个字段。迁移前发现,前台模板只渲染标题和正文,后台列表按发布时间排序,导出报表会带上 audit_state,而 editor_note 只在少数记录里有值,且没有出现在任何导出或接口中。
按上面的筛选:audit_state 有数据、有导出消费方、取值来自固定枚举,应保留并映射到新系统的状态字段;editor_note 有少量数据、暂无消费方,但取值是自由文本,迁移成本低,适合保留为只读备注,不参与新流程。若强行把 editor_note 合并进正文,会污染内容结构;若直接丢弃,则可能丢失后期核对线索。
这个例子的关键不是字段数量,而是每个字段的去向都有依据。实际动作可以是:先导出保留清单和归档清单,再在新系统中建对应的只读区域。这样做的结果是,后续开发只需处理保留清单,归档字段不阻塞上线,同时保留可追溯性。
如果旧系统的字段含义本身存在歧义,或者同一字段在不同时期被写入过不同语义,那么“有数据、有消费方”并不足以支撑保留决策。例如某个字段早期存的是分类编号,后期被复用为活动标记,取值规则已经混杂。此时正确做法不是继续按字段名迁移,而是先按时间或来源拆分数据,再分别判断。无法拆分时,应保留原始值并标记“语义待确认”,不要在新系统中赋予它新的业务含义。
另一个失效条件是合规或存证要求。涉及合同、财务、审计的字段,即使没有技术消费方,也不能按普通业务字段处理,需要单独确认保留期限和访问权限。
与其在迁移脚本里反复试错,不如先产出一张字段依赖表,列出字段名、非空数量、消费方、迁移后解释方式、处理结论。这张表不需要复杂工具,用表格或结构化文本即可。完成后的直接作用是:保留项进入迁移脚本,归档项进入只读存储,语义待确认项单独挂起。这样,字段无法完整迁入时,决定保留项就不再依赖个人记忆,而是依赖可复核的记录。对太原网站开发项目而言,只要旧系统存在历史数据,这张表通常比迁移工具本身更能决定项目是否返工。