迁移类型
您可以执行三种类型的迁移
- 从一个 GitHub Enterprise Server 实例迁移到另一个已存在的 GitHub Enterprise Server 实例。您可以迁移该实例上任何用户或组织拥有的任意数量的仓库。在执行迁移前,您必须拥有两个实例的站点管理员权限。
- 从 GitHub.com 组织迁移到 GitHub Enterprise Server 实例。您可以迁移该组织拥有的任意数量的仓库。在执行迁移前,您必须拥有对 GitHub.com 组织的 管理员访问权限,以及对目标实例的站点管理员权限。
- 试运行是将数据导入预备实例的迁移。这可以帮助您了解如果将迁移应用于 GitHub.com 会发生什么。我们强烈建议您在将数据导入生产实例之前,在预备实例上执行一次试运行。
注意
不建议 使用 ghe-migrator 在不同的 hypervisor 之间迁移 GitHub Enterprise Server 实例。我们建议使用 GitHub Enterprise Server 备份实用程序进行备份并恢复到新位置,或在新位置创建副本然后故障转移到该副本设备。欲了解更多信息,请参阅 使用备份实用程序配置实例的备份、创建高可用性副本 和 启动对副本设备的故障转移。
已迁移的数据
使用 ghe-migrator 时,一切都围绕仓库进行。大部分与仓库关联的数据都可以迁移。例如,组织内的仓库在迁移时会迁移该仓库 以及 组织本身,还包括与该仓库关联的所有用户、团队、议题和拉取请求。
下表中的项目可以随仓库一起迁移。未在已迁移数据列表中显示的项目无法迁移,包括 Git LFS 资产。
注意
迁移后,fork 关系不再保留。
| 与已迁移仓库关联的数据 | 注意 |
|---|---|
| 用户 | @提及对用户的提及将重新写入以匹配目标。 |
| 组织 | 组织的名称和详情将被迁移。 |
| 仓库 | 对 Git 树、blob、提交和行的链接将重新写入以匹配目标。内部仓库将被迁移为私有仓库。归档状态将被取消。 |
| Wiki | 所有 wiki 数据均被迁移。 |
| Teams | @提及对团队的提及将重新写入以匹配目标。 |
| 里程碑 | 时间戳被保留。 |
| 议题 | 议题引用和时间戳被保留。 |
| 议题评论 | 对评论的交叉引用将为目标实例重新写入。 |
| 拉取请求 | 对拉取请求的交叉引用将重新写入以匹配目标。时间戳被保留。 |
| 拉取请求审查 | 拉取请求审查及其关联数据被迁移。 |
| 拉取请求审查评论 | 对评论的交叉引用将为目标实例重新写入。时间戳被保留。文件级别的评论不会被迁移。 |
| 提交评论 | 对评论的交叉引用将为目标实例重新写入。时间戳被保留。 |
| 发布 | 所有发行版数据均被迁移。 |
| 对拉取请求或议题的操作 | 对拉取请求或议题的所有修改(如指派用户、重命名标题、修改标签)均被保留,并附带每项操作的时间戳。 |
| 文件附件 | 议题和拉取请求的文件附件被迁移。您可以在迁移过程中选择禁用此功能。 |
| Webhooks | 仅迁移活跃的 webhook。 |
| 仓库部署密钥 | 仓库部署密钥被迁移。 |
| 受保护分支 | 受保护分支设置及其关联数据被迁移。 |
关于外部身份验证数据的迁移
如果迁移的源位置是使用 LDAP 或 SAML 身份验证的 GitHub 产品,ghe-migrator 不会迁移与用户帐户关联的外部身份验证数据。有关身份验证选项的更多信息,请参阅 GitHub Enterprise Server,在 GitHub Enterprise Server 文档 中的“关于企业的身份验证”或 GitHub Enterprise Cloud 文档 中的相应章节。
如果您先将数据迁移到目标实例并随后配置外部身份验证,用户必须使用与源实例上相同的用户名或用户 ID 登录目标实例。管理员可通过管理控制台查看实例用于映射用户帐户名称的外部属性。有关更多信息,请参阅 访问管理控制台。