我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

此版本的 GitHub Enterprise 将停止服务 此版本的 GitHub Enterprise 已停止服务 2020-11-12. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

Migrating data to your enterprise

生成迁移存档后,您可以将数据导入目标 GitHub Enterprise Server 实例。 在将变更永久应用到目标实例之前,您需要检查变更,查看有无潜在的冲突。

本文内容

Did this doc help you?

Applying the imported data on GitHub Enterprise Server

  1. 以站点管理员身份通过 SSH 连接到目标 GitHub Enterprise Server 实例

    $ ssh -p 122 admin@HOSTNAME
  2. 使用 ghe-migrator import 命令启动导入过程。 您需要:

    • 迁移 GUID.
    • 用于身份验证的个人访问令牌。 您使用的个人访问令牌仅用于站点管理员身份验证,不需要任何特定范围。 更多信息请参阅“创建个人访问令牌”。
    $ ghe-migrator import /home/admin/MIGRATION_GUID.tar.gz -g MIGRATION_GUID -u username -p TOKEN
    
    > Starting GitHub::Migrator
    > Import 100% complete /
    • 要指定迁移文件的暂存位置,请在命令行附加 --staging-path=/full/staging/path。 默认值为 /data/user/tmp

检查迁移数据

默认情况下,ghe-migrator audit 将返回每一条记录。 它还可以让您按以下方式筛选记录:

  • 记录的类型。
  • 记录的状态。

记录类型与迁移的数据中的类型匹配。

记录类型筛选器

记录类型筛选器名称
用户用户
组织组织
仓库仓库
团队团队
里程碑里程碑
项目板project
议题议题
问题评论issue_comment
拉取请求pull_request
拉取请求审查pull_request_review
提交注释commit_comment
拉取请求审查评论pull_request_review_comment
版本发布发行版
在拉取请求或问题上进行的操作issue_event
受保护分支protected_branch

记录状态筛选器

记录状态描述
export将导出记录。
import将导入记录。
map将映射记录。
rename将重命名记录。
合并将合并记录。
exported已成功导出记录。
imported已成功导入记录。
mapped已成功映射记录。
renamed已成功重命名记录。
merged已成功合并记录。
failed_export记录导出失败。
failed_import记录导入失败。
failed_map记录映射失败。
failed_rename记录重命名失败。
failed_merge记录合并失败。

筛选审核的记录

借助 ghe-migrator audit 命令,您可以使用 -m 标志基于记录类型进行筛选。 类似地,您可以使用 -s 标志基于导入状态进行筛选。 命令如下所示:

$ ghe-migrator audit -m RECORD_TYPE -s STATE -g MIGRATION_GUID

例如,要查看每个成功导入的组织和团队,您可以输入:

$ ghe-migrator audit -m organization,team -s mapped,renamed -g MIGRATION_GUID
> model_name,source_url,target_url,state
> organization,https://gh.source/octo-org/,https://ghe.target/octo-org/,renamed

我们强烈建议您检查失败的每个导入。要进行检查,您可以输入:

$ ghe-migrator audit -s failed_import,failed_map,failed_rename,failed_merge -g MIGRATION_GUID
> model_name,source_url,target_url,state
> user,https://gh.source/octocat,https://gh.target/octocat,failed
> repository,https://gh.source/octo-org/octo-project,https://ghe.target/octo-org/octo-project,failed

如果您对失败的导入有任何疑问,请联系 GitHub Enterprise 支持GitHub 高级支持

Completing the import on GitHub Enterprise Server

After your migration is applied to your target instance and you have reviewed the migration, you''ll unlock the repositories and delete them off the source. 我们建议等待两周再删除您的源数据,以便确保所有数据都能按预期运行。

在目标实例上解锁仓库

  1. SSH 连接到 您的 GitHub Enterprise Server 实例。
    $ ssh -p 122 admin@HOSTNAME
  2. 使用 ghe-migrator unlock 命令解锁所有导入的仓库。 您将需要迁移 GUID:
    $ ghe-migrator unlock -g MIGRATION_GUID
    > Unlocked octo-org/octo-project

在源上解锁仓库

Unlocking repositories from an organization on GitHub.com

要在 GitHub.com 组织中解锁仓库,您需要向迁移解锁端点发送 DELETE 请求。 您需要:

  • 身份验证的访问令牌
  • 迁移的唯一 id
  • 要解锁的仓库的名称
    curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X DELETE \
      -H "Accept: application/vnd.github.wyandotte-preview+json" \
      https://api.github.com/orgs/orgname/migrations/id/repos/repo_name/lock

Deleting repositories from an organization on GitHub.com

在解锁 GitHub.com 组织的仓库后,您应当使用仓库删除端点删除之前迁移的每一个仓库。 您需要身份验证的访问令牌:

curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X DELETE \
  https://api.github.com/repos/orgname/repo_name

从 GitHub Enterprise Server 实例解锁仓库

  1. SSH 连接到 您的 GitHub Enterprise Server 实例。
    $ ssh -p 122 admin@HOSTNAME
  2. 使用 ghe-migrator unlock 命令解锁所有导入的仓库。 您将需要迁移 GUID:
    $ ghe-migrator unlock -g MIGRATION_GUID
    > Unlocked octo-org/octo-project

Did this doc help you?