You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MigrationTool迁移工作项仅复制未删除源项 配置问题咨询

配置问题及修正方案

核心遗漏点

  • 处理器执行顺序错误:当前WorkItemDeleteConfig放在迁移处理器之前,会先执行删除逻辑再执行迁移,完全不符合「先复制成功再删除源项」的移动逻辑
  • 删除处理器默认作用于目标项目:未配置指定删除源项目工作项,默认WorkItemDeleteConfig仅清理目标项目的工作项
  • 缺少迁移成功校验规则:当前删除逻辑的WIQL没有过滤未成功迁移的工作项,存在误删未迁移数据的风险

修正方案

  1. 调整处理器顺序,先执行工作项迁移,再执行删除操作
  2. 给WorkItemDeleteConfig添加"DeleteFromSource": true配置,指定删除源项目工作项
  3. 调整删除逻辑的WIQL,仅删除已经成功同步到目标端、ReflectedWorkItemID字段已被标记的工作项

修正后的Processors配置片段如下:

"Processors": [
    {
      "$type": "WorkItemMigrationConfig",
      "ReplayRevisions": true,
      "PrefixProjectToNodes": false,
      "UpdateCreatedDate": true,
      "UpdateCreatedBy": true,
      "BuildFieldTable": false,
      "AppendMigrationToolSignatureFooter": false,
      "WIQLQueryBit": "AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan')",
      "WIQLOrderBit": "[System.ChangedDate] desc",
      "Enabled": true,
      "LinkMigration": true,
      "AttachmentMigration": true,
      "AttachmentWorkingPath": "C:\\Users\\ABCD\\Desktop\\AzureDevOpsMigrationTool\\WorkItemAttachmentWorkingFolder\\",
      "FixHtmlAttachmentLinks": false,
      "SkipToFinalRevisedWorkItemType": true,
      "WorkItemCreateRetryLimit": 5,
      "FilterWorkItemsThatAlreadyExistInTarget": false,
      "PauseAfterEachWorkItem": false,
      "AttachmentMaxSize": 480000000,
      "CollapseRevisions": false,
      "LinkMigrationSaveEachAsAdded": true
    },
    {
      "$type": "WorkItemDeleteConfig",
      "Enabled": true,
      "DeleteFromSource": true,
      "WIQLQueryBit": "AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan') AND [Custom.ReflectedWorkItemId] <> ''",
      "WIQLOrderBit": "[System.ChangedDate] desc"
    }
]

执行注意事项

  • 首次执行建议先关闭删除处理器的Enabled开关,跑一次完整迁移确认所有工作项同步无误后,再开启删除处理器执行源项清理
  • 操作前建议先备份源项目的工作项数据,避免误操作导致数据丢失

内容的提问来源于stack exchange,提问作者J A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:36:03