Skip to main content

关于 ghe-migrator

可以使用 ghe-migrator 将数据从源位置(GitHub.com 组织或 GitHub Enterprise Server 实例)转移到目标 GitHub Enterprise Server 实例 。

迁移的类型

您可以执行三种类型的迁移:

  • 从 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 docsGitHub Enterprise Cloud docs 中的“关于企业身份验证”。

如果迁移到目标实例,然后配置外部身份验证,用户必须使用与源实例上的帐户具有相同用户名或用户 ID 的用户帐户登录到目标实例。 管理员可以查看实例用来映射 管理控制台 中的用户帐户名的外部属性。 有关详细信息,请参阅“访问管理控制台”。