迁移的类型
您可以执行三种类型的迁移:
- 从 GitHub Enterprise Server 实例迁移到另一个现有 GitHub Enterprise Server 实例。 您可以迁移实例上由任何用户或组织拥有的任意数量的仓库。 在执行迁移之前,您必须具有两个实例的站点管理员访问权限。
- 从 GitHub.com 组织迁移到 GitHub Enterprise Server 实例。 您可以迁移由组织拥有的任意数量的仓库。 在执行迁移前,必须拥有 GitHub.com 组织的管理访问权限和目标实例的站点管理员访问权限。
- “试运行”是将数据导入_暂存实例_的迁移。 这些可用于查看如果将迁移应用到 你的 GitHub Enterprise Server 实例 时_会_发生什么。 强烈建议你先在暂存实例上执行试运行,然后再将数据导入生产实例。
注意
**不建议**使用 ghe-migrator 在不同虚拟机监控程序之间传输 GitHub Enterprise Server 实例。 而是建议使用 GitHub Enterprise Server Backup Utilities 备份和还原到新位置,或者在新位置创建副本,然后故障转移到副本设备。 有关详细信息,请参阅“[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)”、“[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica)”和“[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance)”。
迁移的数据
使用 ghe-migrator,一切都围绕存储库进行。 与仓库关联的大多数数据都可以迁移。 例如,组织内的存储库将迁移该存储库和所属的组织,以及与该存储库关联的任何用户、团队、问题和拉取请求。
下表中的项可随仓库一起迁移。 迁移数据列表中未显示的任何项都无法迁移,包括 Git LFS 资产。
注意
分支关系在迁移后不会持续。
| 与迁移的仓库关联的数据 | 备注 |
|---|---|
| 用户 |
**
@mentions 将重写用户的 **,使其与目标匹配。
| 组织 | 将组织的名称和详细信息迁移。 | 存储库 | Git 树、Blob 对象、提交记录和行的链接地址将被重写以与目标相匹配。 内部存储库迁移为私有存储库。 存档状态未设置。 | 维基 | 将迁移所有 wiki 数据。 | Teams | ** @mentions 将重写团队的 **,使其与目标匹配。 | 里程碑 | 将保留时间戳。 | | | 问题 | 将保留问题引用和时间戳。 | 问题评论 | 评论中的交叉引用已针对目标实例进行重写。 | 拉取请求 | 将重写拉取请求的交叉引用以匹配目标。 将保留时间戳。 | 拉取请求审查 | 拉取请求审查和关联的数据将被迁移。 | 拉取请求审查评论 | 评论中的交叉引用已针对目标实例进行重写。 将保留时间戳。 文件级注释不会被迁移。 | 提交注释 | 评论中的交叉引用已针对目标实例进行重写。 将保留时间戳。 | 发布 | 所有版本数据已迁移。 | 在拉取请求或问题上进行的操作 | 将保留对拉取请求或问题的所有修改(例如,分配用户、重命名标题和修改标签)以及每个操作的时间戳。 | 文件附件 | 议题和拉取请求中的文件附件将得到迁移。 在迁移过程中,您可以选择将此禁用。 | Webhook | 仅迁移有效的 web 挂钩。 | 仓库部署密钥 | 仓库部署密钥已迁移。 | 受保护的分支 | 将迁移受保护分支设置和关联的数据。
关于外部身份验证数据的迁移
如果迁移的源位置是使用 LDAP 或 SAML 身份验证的 GitHub 产品,则 ghe-migrator 不会迁移链接到用户帐户的外部身份验证数据。 有关身份验证选项的更多信息,请参阅 GitHub Enterprise Server 以及 GitHub Enterprise Server 文档或 GitHub Enterprise Cloud 文档中的“关于企业身份验证”。
如果迁移到目标实例,然后配置外部身份验证,用户必须使用与源实例上的帐户具有相同用户名或用户 ID 的用户帐户登录到目标实例。 管理员可以查看实例用来映射 管理控制台 中的用户帐户名的外部属性。 有关详细信息,请参阅“访问管理控制台”。