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