注意
Enterprise Live Migrations 位于 公共预览版,可能会有变动。
如果迁移遇到问题,请检查迁移状态 elm migration status --migration-id MIGRATION-ID 并查看错误信息。
状态和建议的措施
| 地位 | Meaning | 建议的操作 |
|---|---|---|
| 创建 | 迁移已创建,但尚未启动 |
`elm migration start`运行 |
| 已排队 **** | 迁移正在等待开始 | Wait |
| 出口 | 正在从源导出数据 | 监控 elm migration status |
| 处理 | 导出的数据正在导入到目标 | 监控 elm migration status |
| 准备切换 | 初始迁移已完成,迁移已准备好进行割接。 | 准备就绪后,运行 elm migration cutover-to-destination |
| 剪切 | 源存储库已锁定,其余更改将应用于目标 | 监控;状态将转换为 “已完成” |
| Completed | 迁移已成功完成 | 验证目标存储库并回收模拟对象 |
| 失败 | 迁移遇到无法恢复的失败 | 调查错误(请参阅下文) |
| 已暂停 | 迁移已暂停 | 恢复迁移 |
| 终止 | 迁移已取消 | N/A |
| 已降级 | 目标无法访问 | 检查GitHub企业服务器设备与 GHE.com 之间的网络连接(请参阅下文) |
迁移状态为“失败”
当无法恢复的错误阻止迁移继续时,迁移将进入 “失败 ”状态。 这不同于单个资源导入失败—迁移失败意味着迁移本身无法继续。
若要分析,请运行 elm migration status --migration-id MIGRATION-ID 并查看响应中的错误详细信息。 每次失败都会包含格式为(Correlation ID for Support: UUID)的关联 ID。 如果联系 GitHub 支持,请提供此 ID,以便支持团队可以进行调查。
解决基础问题后,使用 elm migration cancel --migration-id MIGRATION-ID 中止失败的迁移并启动新的迁移。
迁移状态为“已降级”
**降级**状态意味着设备上的迁移服务GitHub Enterprise Server无法访问目标企业。 迁移在源端继续,但目标状态未知。
检查GitHub Enterprise Server设备与GHE.com子域之间的网络连接,然后再次运行elm migration status --migration-id MIGRATION-ID。 状态响应包括与目标最后一次成功联系的时间戳,这有助于评估连接问题发生的时间。
某些资源无法导入
单个资源可能无法导入,而不会导致整体迁移失败。 在 elm migration status --migration-id MIGRATION-ID 的输出中可以看到失败资源的计数。
只有在所有自动重试都用尽后,才会显示失败的资源,因此在无需干预的情况下,你看到的任何失败都会被确认为无法解决。 查看状态响应中的错误详细信息:在回填或实时更新中,每个失败的资源将显示 "state": "failed"。
如果失败资源的数量和类型可以接受,就可以进行切换。 否则,中止迁移,解决基础问题,然后启动新的迁移。
直接转换失败,源存储库已锁定
如果直接转换失败,源存储库可能会保持锁定或存档状态。 这可以防止开发人员在目标可能仍然不完整的情况下推送到源。
若要解锁源存储库,站点管理员必须从中 GitHub Enterprise Server管理控制台解锁它。
在源解锁后,可以使用 elm migration cutover-to-destination --migration-id MIGRATION-ID 重试切换,或者使用 elm migration cancel --migration-id MIGRATION-ID 中止迁移,在准备就绪时开始新的迁移过程。
因为强制推送的原因,必须重新启动迁移。
如果在迁移正在进行时有人强制推送到源存储库的默认分支,则源和目标之间的 Git 同步会中断。 强制推送重写提交历史记录的方式无法增量协调。
如果发生这种情况,请使用 elm migration cancel --migration-id MIGRATION-ID 中止迁移,并启动新的迁移。 在重启之前,请与团队沟通,当迁移处于活动状态时,不允许强制推送到默认分支。
访问令牌被拒绝
如果迁移失败并出现身份验证错误,请检查:
- 源令牌和目标令牌都是 personal access tokens (classic)。 不支持细粒度令牌。
- 令牌具有 使用企业实时迁移迁移存储库 中指定的范围。
- 如果目标组织强制实施 SAML 单一登录,则必须对令牌进行 SSO 授权。
源 GHES URL 被拒绝
Enterprise Live Migrations 需要 GitHub Enterprise Server URL 才能使用 HTTPS。 如果 URL 配置为 HTTP,迁移将在预检验证时失败。