研发数据迁移校验规则如何制定:字段、步骤与检查清单

研发数据迁移校验规则要围绕“对象—字段—关系—状态”四层来定:先盘点迁移对象和字段映射,再为每类字段设定校验类型,为对象间关系设定引用完整性校验,为状态与历史记录设定语义一致性校验,最后把校验分到迁移前预检、迁移中逐批校验和迁移后抽样复核三个时点。本文只讨论迁移数据内容的校验规则,工作流与插件行为迁移、迁移后的切换管理不在范围内。



要点总览(TL;DR)


  • 校验规则先定范围:按需求、缺陷、任务、用例、文档、附件等对象列出字段清单,并区分必迁、可迁、不迁,规则只覆盖真正要迁移的数据。
  • 规则按四层写:字段层管必填、类型、长度、格式、取值域、唯一性;关系层管引用完整性;状态层管状态值与流转历史一致;历史层管评论、变更记录和附件版本的时间与归属。
  • 校验分三个时点执行:迁移前预检源数据与映射表,迁移中逐批统计记录数与失败原因,迁移后按对象和风险抽样人工复核,每个时点都要有通过标志。
  • 业务负责人确认字段语义与取值域,迁移执行人运行校验并记录失败处置,数据质量或测试角色独立复核抽样,三方确认共同构成放行依据。
  • 规则体系可用与否看五件事:每条规则有编号和失败处置、必迁对象全覆盖、三时点有责任人和通过标志、例外可追溯、规则版本与迁移批次对应。


先定校验对象:迁移范围清单怎么列


校验规则的第一步是确定校验什么。规则脱离迁移范围,就会出现两种情况:必迁对象没有规则覆盖,或者为不迁移的字段写了大量无用校验。范围清单的产出物是一张“迁移对象与字段范围清单”,它同时是后续规则条目表的输入。


按业务对象逐项列出迁移范围。研发数据常见对象包括需求、缺陷、任务、用例、文档、附件、评论、版本,以及用户与权限结构。每个对象在清单中占一行,标注四项信息:字段清单、数据量级、来源系统、目标系统。字段清单要写到字段级,例如缺陷对象下的标题、描述、状态、优先级、指派人、所属迭代、创建时间、关联需求。


对象要区分必迁、可迁、不迁三类。必迁对象是业务连续性依赖的核心数据,规则必须全覆盖;可迁对象按价值取舍,规则覆盖关键字段即可;不迁对象在清单中注明原因,例如历史归档数据保留在原系统查询。这个分类直接决定规则覆盖范围,也决定后续抽样复核的样本分配。


对象 字段清单(示例) 数据量级 来源系统 目标系统 迁移分类
需求 标题、描述、状态、负责人、优先级、关联缺陷 约2万条 原研发管理工具 新研发管理平台 必迁
缺陷 标题、描述、状态、优先级、指派人、所属迭代、创建时间 约8万条 原研发管理工具 新研发管理平台 必迁
附件 文件名、大小、所属对象、上传人、上传时间 约3万个 原文件存储 新平台附件库 必迁
历史归档项目 全部字段 约50个项目 原研发管理工具 只读归档库 不迁


校验规则的四层结构:字段、关系、状态、历史


可执行的规则条目有统一格式:规则编号、对象、字段、校验类型、判定标准、失败处置。四层结构解决的是“校验类型”怎么分类,让规则编写有章可循,不靠个人经验临时补。


字段层:单字段的取值是否合法


字段层覆盖七类校验:必填(目标字段不允许空值)、类型(日期字段必须是合法日期,数值字段不能混入文本)、长度(超出目标字段长度上限时按截断规则处理并记录)、格式(枚举值、编码规则、邮箱与链接格式)、取值域(状态、优先级等枚举字段的值必须在目标系统的允许值列表内)、唯一性(编号、键值类字段不允许重复)、默认值与截断处理(源字段为空或超长时,明确填默认值还是截断,并记录处理结果)。


关系层:对象之间的引用是否完整


关系层校验三类引用:父子层级(需求与子任务、用例与测试步骤的归属关系不能断)、关联引用(缺陷关联的需求、任务关联的迭代,被引用对象必须已迁移或明确标记为不迁)、跨对象链接(描述中的内链、附件与所属对象的绑定关系)。引用完整性校验的判定标准是“引用目标存在且可访问”,失败时按阻断或降级为纯文本处理,两种处置都要在规则中写明。


状态层:状态值与流转历史是否一致


状态层校验两件事:状态值本身是否在目标系统的状态枚举内,以及状态流转历史与当前状态是否自洽。例如一条缺陷当前状态为“已关闭”,其历史记录中应存在关闭动作;若历史缺失,需要标记为“状态历史不完整”并进入例外清单,而不是直接放行。


历史层:评论、变更记录、附件版本的时间与归属


历史层校验评论、变更记录、附件版本三类数据:时间顺序(创建时间不晚于关闭时间,评论时间落在对象生命周期内)、归属(评论作者、附件上传人必须是已迁移用户或映射到指定账号)、版本(附件多版本时保留版本顺序与最新版本标记)。


规则编号 对象 字段/关系 校验类型 判定标准 失败处置
R-DEF-01 缺陷 标题 必填 非空且长度≤200字符 阻断,回源修正后重迁
R-DEF-02 缺陷 优先级 取值域 值属于目标系统枚举集合 映射到默认值并记录例外
R-DEF-03 缺陷 关联需求 引用完整性 被引用需求已迁移且ID可解析 阻断该条,待需求批次完成后重迁
R-DEF-04 缺陷 状态历史 语义一致性 当前状态在历史记录中有对应流转 标记例外,人工确认


规则的三个执行时点:预检、逐批校验、抽样复核


规则写完后要落到迁移流程的具体位置。三个时点各有输入、动作、输出和通过标志,缺一个时点,问题就会推迟到上线后才暴露。


迁移前预检


输入是源数据导出集和字段映射表。动作包括:对源数据执行质量扫描(空值率、枚举越界、重复键、超长字段统计),核对映射表中每个源字段都有目标字段对应,确认取值域映射表完整。输出是预检报告,列出每类问题的数量和涉及记录。通过标志是必迁对象的阻断级问题清零,或已登记处置方案。


迁移中逐批校验


输入是每一批导入的记录集。动作是每批导入后统计:记录数是否与源批次一致、失败记录数与失败原因分类、错误类型分布(字段级、关系级、状态级)。输出是批次校验记录,失败记录进入待处理队列。通过标志是本批失败率为零,或失败记录全部有处置结论且不影响下一批依赖关系。


迁移后抽样复核


输入是全量迁移结果。动作是按对象和风险等级抽取样本,人工比对源系统与目标系统的字段值、关联关系、状态与历史记录。高风险对象(必迁且业务依赖强)抽样比例高,低风险对象可降低比例。输出是抽样复核报告。通过标志是抽样一致率达到事先约定的阈值,例外项全部登记。


时点 输入 动作 输出 通过标志
迁移前预检 源数据导出集、字段映射表 质量扫描、映射核对、取值域确认 预检报告 阻断级问题清零或已登记处置
迁移中逐批校验 每批导入记录集 记录数比对、失败统计、错误分类 批次校验记录 失败记录全部有处置结论
迁移后抽样复核 全量迁移结果 按对象与风险抽样人工比对 抽样复核报告 一致率达到约定阈值,例外全登记


角色分工与交付物:谁定规则、谁执行、谁签字


规则无人负责就会停留在文档里。三类角色各有明确职责和交付物,确认节点要写进迁移计划。


业务负责人确认字段语义与取值域,交付物是字段语义说明和枚举映射表,确认节点在预检开始前。迁移执行人编写并运行校验脚本或核对表,交付物是校验脚本、批次校验记录和失败处置记录,确认节点在每批导入完成后。数据质量或测试角色独立复核抽样结果,交付物是抽样复核报告,确认节点在抽样复核结束时。三类角色的确认签字共同构成迁移放行依据。


角色 职责 交付物 确认节点
业务负责人 确认字段语义、取值域与例外取舍 字段语义说明、枚举映射表 预检开始前
迁移执行人 编写并运行校验脚本或核对表 校验脚本、批次校验记录、失败处置记录 每批导入完成后
数据质量/测试角色 独立复核抽样结果 抽样复核报告 抽样复核结束时

这些交付物需要可追溯地留存。以ONES承载迁移项目时,可以把每条规则登记为工作项,把预检报告、批次校验记录和抽样复核报告作为附件或文档挂在对应批次下,规则版本与迁移批次建立关联,评审结论记录在评审节点上。ONES的Jira迁移方案覆盖项目、工作项、状态、字段、附件和历史记录,Confluence迁移覆盖页面正文、附件、图片、常用宏及批注,并包含用户、用户组与权限结构,这些范围可以作为校验对象清单的参照,具体校验方式以实际迁移方案为准。



示例:一条缺陷数据迁移的校验规则怎么写


以缺陷对象为例,一条完整规则要写清对象、字段、校验类型、判定标准、失败处置和例外记录方式。


字段层示例:规则R-DEF-01,对象为缺陷,字段为标题,校验类型为必填,判定标准为非空且长度不超过目标字段上限200字符,失败处置为阻断该条记录并回源修正后重迁。规则R-DEF-02,字段为优先级,校验类型为取值域,判定标准为值属于目标系统枚举集合,失败处置为映射到默认优先级并记录例外。


关系层示例:规则R-DEF-03,字段为关联需求,校验类型为引用完整性,判定标准为被引用需求已迁移且ID可解析,失败处置为阻断该条缺陷,待需求批次完成后重迁。若被引用需求属于不迁对象,则降级为纯文本备注并记录例外。


状态层示例:规则R-DEF-04,字段为状态与状态历史,校验类型为语义一致性,判定标准为当前状态在历史记录中有对应流转动作,失败处置为标记“状态历史不完整”,进入例外清单由业务负责人确认。


例外清单按固定格式记录:规则编号、对象ID、字段、失败原因、处置方式、确认人、确认时间。例外记录要能按规则编号和对象汇总,便于迁移结束后统计每类规则的失败分布。



完成检查:校验规则是否可用的核对项


规则体系是否达到可执行标准,用以下清单逐项核对,全部通过才进入正式迁移。


  • 每条规则有唯一编号、对象、字段、判定标准和失败处置,缺一项视为未完成。
  • 必迁对象全部有规则覆盖,字段清单与规则条目逐一对应,无遗漏字段。
  • 预检、逐批校验、抽样复核三个时点均有明确的通过标志和责任人。
  • 例外与失败记录可追溯、可按规则编号和对象汇总。
  • 规则版本与迁移批次一一对应,批次变更时规则同步更新。
  • 字段层七类校验(必填、类型、长度、格式、取值域、唯一性、截断与默认值)在适用字段上均有对应规则。
  • 关系层、状态层、历史层的规则条目与字段层规则使用同一编号体系,便于统一汇总。

核对通过后,规则条目表、三时点执行流程、角色交付物对照表和例外记录格式共同构成迁移校验的完整交付物,作为迁移放行和后续批次复用的依据。



常见问题


源系统里存在大量空值和枚举越界,预检阶段应该全部阻断迁移吗?


不必全部阻断。预检阶段先按规则编号统计每类问题的数量和涉及记录,再按影响分级:必迁对象的关键字段(如缺陷标题、所属项目)为空或无法映射时,列为阻断级,回源修正后再迁;非关键字段的空值或枚举越界,可以按事先约定的默认值映射或截断处理,并逐条登记例外。判断标准是这条数据缺失后,目标系统里的业务记录是否还能被正常识别和流转。


逐批校验时失败记录已经登记例外,能不能先继续导入下一批?


要看失败记录是否影响下一批的依赖关系。如果失败的是被其他对象引用的记录,例如需求批次中有记录失败,而缺陷批次要引用这些需求,就应先处理完再进入下一批,否则关系层校验会持续报引用缺失。如果失败记录只涉及本批内部字段且已登记处置结论,可以在记录完整的前提下继续,但每批的失败清单要随批次记录留存,迁移结束后统一汇总。


抽样复核的一致率阈值怎么定,抽多少才算够?


阈值和样本量没有统一数字,按对象风险等级来定。必迁且业务依赖强的对象,抽样比例应覆盖各状态、各时间段的记录,一致率要求可以设得高一些;可迁对象和低风险字段可以降低比例。更实用的做法是先做一轮小样本试抽,看错误集中在哪些字段和规则上,再据此调整正式抽样的对象范围和数量。阈值一旦确定,要写进迁移计划并在复核报告中对照使用。


规则写好后,迁移批次调整了字段映射,规则怎么同步?


规则版本要与迁移批次绑定。字段映射变更时,先更新范围清单和映射表,再逐条检查受影响的规则:字段改名或类型变化的,修改判定标准;新增字段的,补充对应规则;不再迁移的字段,将规则标记为停用并注明原因。更新后的规则条目表随批次一起归档,避免用旧规则校验新批次的数据。


用ONES承载迁移项目时,校验记录放在哪里比较合适?


可以把每条校验规则登记为工作项,把预检报告、批次校验记录和抽样复核报告作为附件或文档挂在对应迁移批次下,规则版本与批次建立关联,评审结论记录在评审节点上。ONES的Jira迁移方案覆盖项目、工作项、状态、字段、附件和历史记录,Confluence迁移覆盖页面正文、附件、图片、常用宏及批注,并包含用户、用户组与权限结构,这些范围可以作为校验对象清单的参照,具体校验方式以实际迁移方案为准。