迁移字段丢失和字段映射错误有什么区别

迁移后字段为空、值对不上,先要分清是字段整体没迁过来,还是映射规则把值放错了位置。字段丢失指源字段在目标对象上没有落点,表现为整列为空或记录缺项;映射错误指字段有值,但来自错误的源字段或经过错误转换,表现为值错位、格式异常、语义错乱。判断时看三点:目标字段有没有值、值是否来自正确的源字段、问题按字段整体出现还是按规则成批出现。本文围绕这两类问题的识别与处置展开,流程与插件行为迁移、迁移结果核验与切换管理不在讨论范围内。



要点总览(TL;DR)


  • 迁移字段丢失是源字段在目标对象上没有落点,表现为整列为空或记录缺项;字段映射错误是字段有值但来源或转换不对,表现为值错位、格式异常、语义错乱。
  • 判断时看三点:目标字段有没有值、值是否来自正确的源字段、问题按字段整体出现还是按映射规则成批出现。
  • 字段丢失多源于字段清单未对齐、目标模型缺字段或迁移范围漏配;映射错误多源于映射表配错、转换规则写错或枚举对照不完整。
  • 处置方向不同:字段丢失补字段、补范围后重跑;映射错误修映射表、改转换规则后按影响范围重跑。
  • 两类问题并存时先补缺失字段再修错位,让后续抽样比对覆盖完整数据范围。


两个概念的核心区别:没搬过来,还是搬错了


迁移字段丢失,指源系统中的某个字段在迁移后没有落到目标对象上。它可能因为字段未纳入迁移范围、目标模型没有对应字段、迁移任务跳过了该字段而产生。结果特征是目标字段整体为空,同一字段在所有记录上都缺值,或者部分记录整项缺失。


字段映射错误,指字段已经参与迁移,但值被放到了错误的目标字段,或者按错误规则做了转换。结果特征是目标字段有值,但值与源数据对不上:文本进了日期字段、优先级值错位、枚举值含义变化、多选与单选之间转换失真。问题往往沿同一条映射规则成批出现,而不是随机散落。


可以用一组判断句直接套用:


  • 目标字段为空、源字段明明有值,先按字段丢失排查。
  • 目标字段有值、但与源字段逐条比对不一致,先按映射错误排查。
  • 同一字段全部记录都缺值,倾向字段丢失;同一规则影响的记录成批出现同类错值,倾向映射错误。
  • 字段在目标模型中根本不存在,属于字段丢失;字段存在但取值来源不对,属于映射错误。

这两类问题的处置方向不同:字段丢失要补字段、补迁移范围;映射错误要改映射表、改转换规则。判断错类型,后续动作就会做偏。



同口径差异对照:表现、成因与排查入口


把两类问题放在同一组维度下对照,可以更快确定排查起点。下表按表现形态、成因来源、影响范围、排查入口和处置方向五个维度展开。


对照维度 迁移字段丢失 字段映射错误
表现形态 目标字段为空、整列无值、记录缺项 目标字段有值但值错位、格式异常、语义错乱
成因来源 字段未纳入迁移范围;目标模型无对应字段;迁移任务跳过该字段 映射表配置错误;转换逻辑错误;源字段与目标字段对应关系配错
影响范围 按字段整体缺失,影响该字段的全部或部分记录 按映射规则成批出现,影响同一规则覆盖的记录集合
排查入口 先查源字段清单与目标模型字段清单,再查迁移范围配置 先查映射表与转换规则,再做源目标抽样比对
处置方向 补目标字段、补迁移范围、重跑缺失字段 修正映射关系、调整转换规则、按影响范围重跑

从成因看,字段丢失多发生在迁移准备阶段:字段清单没有对齐,目标对象模型缺少承载位置,迁移范围配置漏掉了某类字段。映射错误多发生在映射配置与转换执行阶段:字段对应关系配错、值转换规则写错、枚举值对照表不完整。


从影响范围看,字段丢失的边界比较清晰,通常能按字段名定位;映射错误的影响面取决于规则覆盖范围,一条错误规则可能影响多个字段或大量记录,排查时需要先确定规则影响集合,再抽样验证。



典型场景举例:同一批数据里的两种问题


以下示例用于说明识别方法,均为演示情景,不对应具体项目数据。


字段整体缺失的例子


源系统工作项上有“预计上线日期”字段,迁移后目标工作项上该字段整列为空。检查发现目标对象模型中没有建立对应日期字段,迁移范围配置也未包含该字段。这类问题表现为同一字段在所有记录上都没有值,源数据本身完整。


映射错位的例子


源系统的“优先级”取值为高、中、低,迁移后目标字段出现“高”对应到“低”的情况,或者“故事点”数值被写入了“剩余工时”字段。这类问题表现为目标字段有值,但逐条比对源数据时发现值来自其他字段或经过错误转换。问题通常集中在同一条映射规则覆盖的记录上。


同一批数据中两类问题并存的识别方法


先按字段维度统计目标字段的空值率,筛出整列为空或大面积缺值的字段,归入字段丢失候选;再对非空字段做源目标抽样比对,筛出值不一致的记录,归入映射错误候选。两步分开做,可以避免把“有值但错位”误当成“字段缺失”。


容易混淆的边界情况


  • 源字段本身为空:目标字段为空属于正常结果,不能算字段丢失,需要回到源数据确认。
  • 映射规则把空值转换为默认值:目标字段有值但并非源值,属于映射规则问题,不是字段丢失。
  • 字段存在但迁移后被隐藏或权限不可见:值可能已经迁入,需要先排除展示与权限因素再判断。
  • 多值字段只迁入部分值:既可能是范围配置漏项,也可能是转换规则截断,需要结合映射表确认。


迁移中如何分别定位与处置


两类问题的排查顺序不同,按下面的路径执行可以减少反复。


字段丢失的定位顺序


  1. 核对源字段清单:确认源系统中该字段确实有值,排除源数据本身为空。
  2. 核对目标模型字段:确认目标对象上存在承载该字段的字段,类型与容量满足要求。
  3. 核对迁移范围配置:确认该字段被纳入本次迁移范围,没有被过滤条件排除。
  4. 确认后补建字段或补入范围,按字段重跑迁移,并抽样验证结果。

映射错误的定位顺序


  1. 查映射表:确认源字段与目标字段的对应关系是否正确,是否存在一对多、多对一配错。
  2. 查转换规则:确认枚举对照、日期格式、数值单位、多值与单值转换逻辑是否符合预期。
  3. 抽样比对:选取覆盖不同取值和边界情况的记录,逐条比对源值与目标值。
  4. 修正映射或转换规则后,按受影响记录范围重跑,并复核同规则覆盖的其他字段。

避免把映射错误误判为字段丢失的检查点


  • 目标字段有值但值不对,按映射错误处理,不进入补字段流程。
  • 字段在目标模型中存在、迁移范围也包含,仍然为空时,先查转换规则是否把值转成了空。
  • 同一字段部分记录有值、部分为空,优先查映射规则的条件分支,而不是直接判定字段缺失。
  • 重跑前记录当前映射版本,避免修正一处规则后影响其他已正确的字段。

在迁移准备阶段把字段清单、目标模型字段和映射表作为三份可核对的输入,能让上述两条路径有据可查。ONES 的 Jira 迁移方案覆盖项目、工作项、状态、字段、流程、附件和历史记录,并在迁移到 ONES Project 时迁移问题类型、工作流、字段配置、权限配置以及问题属性和属性值,这类字段与字段配置的迁移对象可以作为核对清单的落点;具体映射规则配置与校验机制以实际方案评估为准。



适配场景与选择建议:先分清问题再定动作


分清类型之后,处置动作的选择可以按以下条件判断。


优先按字段丢失处理的情况


  • 目标字段整列为空,源字段有值且源数据完整。
  • 目标对象模型中没有对应字段,或字段类型无法承载源值。
  • 迁移范围配置明确排除了该字段。

这类情况先补字段、补范围,再重跑,动作集中在迁移准备与范围配置上。


优先按映射错误处理的情况


  • 目标字段有值,但与源值逐条比对不一致。
  • 错值沿同一规则成批出现,影响记录集合可被规则圈定。
  • 枚举、日期、数值或多值字段出现格式或语义偏差。

这类情况先修映射表与转换规则,再按影响范围重跑,动作集中在映射配置与转换逻辑上。


两类问题并存时的处理顺序


建议先处理字段丢失,再处理映射错误。字段缺失会改变可比对的数据范围,先补齐字段能让后续抽样比对覆盖完整;映射修正后重跑时,也更容易确认错值是否只来自规则问题。若映射错误影响面很大,可以先冻结相关规则的迁移结果,避免错误值扩散到下游统计。


与流程、插件迁移及结果核验的边界


本文讨论的是数据内容层面的字段问题。工作流行为、插件逻辑的迁移属于另一类对象,其异常表现不能直接套用字段丢失或映射错误的判断口径。迁移结果核验与切换管理涉及验收标准、回滚安排和业务切换节奏,也不在本篇展开。实际迁移中可以把字段清单核对与映射抽样比对作为核验的前置动作,再进入整体验收。


把区分口径固定下来,迁移异常就能落到具体动作:空值查清单与范围,错值查映射与规则,两类并存时先补缺失再修错位。



常见问题


源字段本身为空,迁移后目标字段也为空,算字段丢失吗?


不算。字段丢失的前提是源字段有值、目标对象上没有落点。源字段本身为空时,目标字段为空属于正常迁移结果。排查时应先回到源数据确认该字段在源系统中是否确实有值,再判断是否需要进入补字段流程。


映射规则把空值转成了默认值,这属于哪类问题?


属于映射错误。目标字段有值,但值并非来自源数据,而是转换规则生成的默认值。这类问题沿同一条规则成批出现,处置时应修改转换规则,让空值保持为空或按业务约定处理,再按受影响记录范围重跑。


同一字段部分记录有值、部分为空,应该先查哪一边?


优先查映射规则的条件分支。字段在目标模型中存在、迁移范围也包含,却只有部分记录为空,常见原因是转换规则对某些取值做了特殊处理,把值转成了空。确认规则无误后,再核对源数据中这些记录是否本身缺值,避免直接判定为字段缺失。


修正映射规则后重跑,如何避免影响原本正确的字段?


重跑前记录当前映射版本,明确本次修改涉及的规则和字段范围,按受影响记录集合重跑,而不是全量重跑。重跑后对同一条规则覆盖的其他字段一并复核,确认修正没有引入新的错值。


字段在目标系统中存在,但迁移后看不到值,怎么判断?


先排除展示与权限因素。字段可能已经迁入,只是被隐藏或当前账号无权查看。确认字段可见后仍为空,再按字段丢失路径核对源字段清单、目标模型字段和迁移范围配置;若字段可见且有值但值不对,则按映射错误处理。