研发数据迁移校验规则要围绕“源—目标—对象—字段—证据”五件事建立:先锁定迁移范围与版本,再为每个对象定义字段级映射规则和允许的转换,随后用总量核对、主键唯一性、必填与枚举、引用完整性、附件与富文本完整性、抽样人工复核六类检查形成证据链,最后设定阈值与回退点。规则应在试迁移前定稿,与迁移脚本同版本管理,避免用迁移结果反推规则。校验任务与差异项可以在 ONES 中作为工作项跟踪,报告与迁移记录关联归档。
要点总览(TL;DR)
- 校验规则围绕“源—目标—对象—字段—证据”五件事建立,在试迁移前定稿并与迁移脚本同版本管理。
- 六类检查按顺序执行:总量核对、主键唯一性、必填与枚举、引用完整性、附件与富文本完整性、抽样人工复核。
- 阈值区分关键字段与非关键字段:关键字段零容忍,非关键字段设允许差异率并附人工确认。
- 差异台账按字段记录源值、目标值与规则编号,修复后复跑同一规则集,证据与迁移记录关联归档。
- 主键冲突、关键字段大面积空值、引用断裂超阈值属于阻断项,切换前保留源系统只读窗口作为回退基础。
校验对象与迁移范围怎么界定
校验范围的第一步是把“从哪里迁到哪里”写清楚,包括源系统名称与版本、目标系统名称与版本。版本信息直接决定字段字典和导出方式,缺失版本号的范围清单无法支撑后续规则编写。例如从 Jira 迁移到 ONES 的场景,需要先确认源端 Jira 版本和目标端 ONES 的部署形态,再据此确定可用的导出接口和字段清单。
第二步是列出纳入校验的对象类型。研发数据迁移通常涉及以下对象,每一类都要单独登记记录量级和负责人:
- 工作项(任务、子任务等)及其属性值
- 需求、缺陷及其状态与关联关系
- 迭代、版本等计划类对象
- 评论与操作历史
- 附件与富文本正文中的图片
- 用户、用户组与组织归属
第三步是明确排除项。流程状态机的行为等价、插件功能的替代实现、权限模型的细粒度对齐,这些属于迁移方案设计或切换管理的范畴,不纳入数据内容校验。把它们写进排除项,可以避免校验阶段被“状态流转是否一致”这类行为问题拖住。ONES 的 Jira 迁移方案覆盖项目、工作项、状态、字段、流程、附件和历史记录,Confluence 迁移覆盖空间、页面、附件和权限结构,这些范围描述可以作为对照,但具体到某个项目,仍要以实际确认的对象清单为准。
第四步是登记迁移批次与时间窗口。一次迁移拆成几个批次、每批覆盖哪些项目或对象类型、每批的导出时间点和校验完成时间,都需要在范围清单中体现。同一对象如果跨批次迁移,要注明批次间的衔接关系,防止记录被重复计入或漏计。
| 清单字段 | 填写要求 | 示例 |
|---|---|---|
| 对象类型 | 按迁移粒度拆分到可核对的层级 | 工作项、评论、附件 |
| 记录量级 | 源端导出后的实际条数 | 工作项约 12 万条 |
| 源版本 / 目标版本 | 写明产品与版本号 | 源端版本待确认,目标端版本待确认 |
| 迁移批次 | 批次编号与覆盖范围 | 批次一:项目 A、B |
| 负责人 | 数据提供方与校验执行方各一人 | 业务方 + 迁移工程师 |
校验规则要哪些输入和前置依赖
规则不能凭空写。每条校验规则的判定条件,都依赖源端和目标端的字段定义。规则制定前需要拿到四类材料,缺任何一类都会导致规则空转或误判。
源端与目标端字段字典。字段字典要包含字段标识、显示名称、数据类型、是否必填、取值范围。两端字典放在一起对照,才能发现同名字段含义不同的情况。例如源端的“优先级”是五级枚举,目标端是三级枚举,规则里就必须写明映射关系和允许的转换结果。
字段映射表与转换规则。映射表按对象类型逐字段填写,至少覆盖三类转换:枚举值映射(源值到目标值的对照表)、日期与时间格式转换(时区、精度)、人员账号对应(源账号到目标账号的对照,含离职账号和重名账号的处理方式)。映射表是校验规则的直接输入,规则中的“期望值”大多来自这张表。
试迁移样本数据与导出方式。从每个对象类型中抽取一批样本先行迁移,样本要覆盖正常记录、边界记录(超长文本、空附件、特殊字符)和异常记录。导出方式要记录清楚:通过什么接口或工具导出、导出文件格式、导出时间点。样本迁移的结果用于校准规则,而不是用来反推规则。
业务方确认人与规则版本。关键字段(如工作项编号、所属项目、负责人、状态)需要业务方指定确认人,对映射结果签字。规则文档要有版本号,并与迁移脚本版本一一对应;脚本调整后,受影响的规则同步升版,旧版本保留备查。
| 输入材料 | 提供方 | 用途 | 缺失后果 |
|---|---|---|---|
| 源端字段字典 | 源系统管理员 | 确定导出字段与取值 | 无法判断空值是否合理 |
| 目标端字段字典 | 目标系统管理员 | 确定允许值与必填约束 | 枚举校验无基准 |
| 字段映射表 | 迁移工程师 + 业务方 | 生成期望值 | 差异无法定性 |
| 试迁移样本 | 迁移执行方 | 校准规则与阈值 | 规则停留在纸面 |
| 确认人与规则版本 | 项目经理 | 评审与追溯 | 差异争议无裁决依据 |
六类校验规则怎么写:从字段到引用
六类规则按“先总量、再结构、后内容、最后人工”的顺序执行。每类规则都要有规则编号、检查对象、判定条件、失败等级和处理动作,写成表格后直接作为执行清单。
总量核对。按对象类型比对源端导出记录数与目标端导入记录数。判定条件是两者相等;若不等,差额必须能由排除项解释(如源端已删除记录、重复记录合并)。失败等级为高,处理动作是定位差额记录并逐条说明去向。
主键与唯一性。检查迁移后工作项编号、内部 ID 是否重复或丢失,以及源端编号与目标端编号的对应关系是否完整。判定条件是编号集合无重复、源端每条记录都能在对应表中找到目标记录。失败等级为阻断,处理动作是停止该批次并排查映射冲突。
必填与枚举。统计关键字段的空值率,检查枚举字段的取值是否全部落在目标端允许集合内。判定条件按字段分级:关键字段空值率为零,非关键字段空值率不超过约定比例;枚举值不允许出现集合外的值。失败等级按字段重要性分为阻断与警告两档。
引用完整性。检查父子工作项关系、迭代归属、版本归属、人员归属是否都指向目标端存在的对象。判定条件是引用目标全部可解析,断裂引用数为零或低于约定阈值。失败等级为阻断或高,处理动作是补齐缺失的被引用对象或修正引用字段。
附件与富文本完整性。核对附件数量、总大小、可下载性,以及富文本正文中的图片和链接是否保留。判定条件是附件数量与源端一致、抽样附件可正常打开、正文图片可显示。失败等级为高,处理动作是重新上传缺失附件并记录。
抽样人工复核。按对象类型和变更频率分层抽样:高频变更的工作项、含附件的记录、跨项目关联的记录各抽一定比例,由业务方逐条比对源端与目标端的显示结果。判定条件是抽样记录的关键字段与人工判断一致。失败等级为高,处理动作是扩大抽样范围并回溯规则。
| 规则编号 | 检查对象 | 判定条件 | 失败等级 | 处理动作 |
|---|---|---|---|---|
| R-01 | 各对象类型记录数 | 源数 = 目标数,差额可由排除项解释 | 高 | 定位差额并说明去向 |
| R-02 | 工作项编号与 ID | 无重复、无丢失、对应关系完整 | 阻断 | 停止批次,排查映射冲突 |
| R-03 | 必填字段与枚举字段 | 关键字段空值率为零,枚举值在允许集合内 | 阻断 / 警告 | 修正数据或调整映射 |
| R-04 | 父子关系、迭代、人员归属 | 引用目标全部存在,断裂数低于阈值 | 阻断 / 高 | 补齐被引用对象 |
| R-05 | 附件与富文本 | 数量一致、抽样可打开、图片可显示 | 高 | 重新上传并记录 |
| R-06 | 分层抽样记录 | 关键字段与人工判断一致 | 高 | 扩大抽样并回溯规则 |
核验证据怎么留、阈值怎么定
校验结果要能支撑评审,就必须留下可追溯的证据。每条规则执行后记录执行时间、执行人、样本量、结果和差异明细。差异明细按字段级记录,包含源值、目标值、规则编号和处理状态,形成差异台账。台账中的每条差异都要有归属人,关闭条件是修复后复跑通过或经业务方书面确认接受。
阈值设定区分关键字段与非关键字段。关键字段(编号、所属项目、负责人、状态、父子关系)采用零容忍口径,出现一条差异即不通过。非关键字段(描述文本格式、标签、自定义属性的次要字段)可以设定允许差异率,例如不超过抽样量的约定比例,且每条差异需人工确认不影响业务使用。阈值不是固定数字,由业务方按字段重要性在规则评审时确定,并写入规则文档。
证据归档位置要与迁移记录关联,评审时能按批次调取。评审签字由业务方确认人和迁移负责人共同完成。修复后复跑同一规则集,复跑结果与首轮结果并列保存,形成完整的处理轨迹。ONES 的迁移方案把数据完整作为迁移目标之一,并建议在正式迁移前确认数据范围、功能匹配和系统适配;校验证据正是这一确认过程的支撑材料。
哪些情况应停止或回退
阻断项要在切换前与业务方共同确认,写进决策表。出现以下情况应停止当前批次:主键冲突或编号大面积丢失;关键字段出现大面积空值,超出零容忍口径;引用断裂数量超过约定阈值;附件批量不可下载。停止后先定位原因,修复映射或补齐数据,再复跑规则集。
可带条件通过的情况包括:非关键字段的少量格式差异、已确认无业务影响的枚举映射偏差、个别附件需重新上传。带条件通过要附补偿动作和完成时间,并在切换前复核关闭。
回退点分两层。试迁移环境保留回滚能力,样本迁移失败时回滚到迁移前状态,不影响源系统。正式切换前保留源系统只读窗口,作为回退基础;切换后发现阻断级差异且无法在目标侧修复时,按决策表回退到只读窗口状态,源系统恢复写入。差异无法在目标侧修复的,处置路径是记录差异、评估业务影响、由业务方决定接受或重新迁移该部分数据。停止后如果发现范围界定本身有误(如对象清单遗漏、版本不匹配),应重新评估范围并更新规则版本,而不是在旧规则上打补丁。
| 情形 | 判定 | 动作 |
|---|---|---|
| 主键冲突、编号大面积丢失 | 阻断 | 停止批次,排查映射 |
| 关键字段大面积空值 | 阻断 | 停止,修复后复跑 |
| 引用断裂超阈值 | 阻断 | 补齐被引用对象 |
| 非关键字段少量差异 | 带条件通过 | 人工确认并记录补偿 |
| 切换后出现阻断差异且无法修复 | 回退 | 回到源系统只读窗口 |
把校验规则接入迁移流程的管理动作
校验要成为流程节点,而不是迁移完成后补做的检查。规则评审放在试迁移之前,由业务方确认人、迁移工程师和项目经理共同参加,评审通过后规则冻结并升版。切换前复核放在正式切换之前,核对首轮差异的关闭情况和复跑结果,复核不通过不进入切换。
校验任务和差异项作为工作项跟踪,每条差异指定负责人和关闭条件,状态从“待处理”流转到“已修复待复跑”再到“已关闭”。校验报告与迁移记录关联归档,报告中的规则编号、批次号与迁移脚本版本对应,便于追溯。跨团队交接时,移交内容包括规则文档、差异台账、复跑记录和评审签字,接收方据此判断是否可以进入下一阶段。
在 ONES 中,这类管理动作可以落到具体的工作项和文档上:校验任务按批次和对象类型建立工作项,差异项作为独立工作项关联到对应批次,负责人和关闭条件写在字段里;校验报告与迁移记录作为文档归档,评审结论和签字记录随文档保存。ONES 的 Jira 迁移方案覆盖问题数据(含属性、附件、评论)以及用户、用户组和系统配置,Confluence 迁移覆盖页面正文、附件、图片、常用宏及批注,这些范围可以作为校验对象清单的对照来源;具体的校验报告与差异清单能力以实际实施时确认的方案为准。这样,规则、执行、差异处理和评审证据在同一条流程里衔接,交接时有据可查。
常见问题
校验规则应该在迁移流程的哪个时点定稿?
规则应在试迁移之前完成评审并冻结,而不是等迁移跑完再补。试迁移样本的作用是校准规则和阈值,规则本身来自字段字典、映射表和业务方确认,两者方向不能颠倒。规则冻结后升版,与迁移脚本版本一一对应;脚本调整时,受影响的规则同步升版,旧版本保留备查。
源端和目标端字段同名但含义不同,校验规则怎么处理?
这种情况要在映射表中显式写出转换规则,并在校验规则里把转换后的目标值作为期望值。常见的有枚举级数不同(如五级优先级映射到三级)、日期时区与精度差异、人员账号对应(含离职账号和重名账号)。规则判定时比对的是映射后的期望值,源端原值只作为差异台账中的记录字段,不直接与目标值比较。
非关键字段允许差异率,是否意味着这些差异可以不管?
允许差异率的前提是每条差异都经过人工确认,确认不影响业务使用后才计入可接受范围。差异台账中每条记录仍要有归属人和关闭条件,关闭方式可以是修复后复跑通过,也可以是业务方书面确认接受。差异率由业务方在规则评审时按字段重要性确定,写入规则文档,不设统一数字。
试迁移通过后,正式迁移还需要重跑全部规则吗?
需要。试迁移的样本量和正式批次不同,正式迁移后应按同一规则集重跑,重点核对总量、主键唯一性和引用完整性,抽样复核可沿用分层方法但重新抽取。首轮与复跑结果并列保存,形成完整处理轨迹。正式切换前还要复核首轮差异的关闭情况,复核不通过不进入切换。
校验任务和差异项在 ONES 中如何跟踪?
可以按批次和对象类型建立校验任务工作项,差异项作为独立工作项关联到对应批次,负责人和关闭条件写在字段里,状态从“待处理”流转到“已修复待复跑”再到“已关闭”。校验报告与迁移记录作为文档归档,评审结论和签字随文档保存。ONES 的 Jira 迁移方案覆盖问题数据(含属性、附件、评论)以及用户、用户组和系统配置,Confluence 迁移覆盖页面正文、附件、图片、常用宏及批注,可作为校验对象清单的对照来源;具体校验报告与差异清单能力以实际实施时确认的方案为准。
