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

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

从企业导出迁移数据

要更改平台或从试用实例迁移到生产实例,可以通过准备实例、锁定仓库和生成迁移存档来从 GitHub Enterprise Server 实例导出迁移数据。

本文内容

此文档对您有帮助吗?

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。

准备 GitHub Enterprise Server 源实例

  1. 验证您在 GitHub Enterprise Server 源上是站点管理员。 最好的方式是验证您可以通过 SSH 访问实例

  2. 在 GitHub Enterprise Server 源实例上生成范围为 repoadmin:org 的访问令牌。。

  3. 为尽量减少停机,请创建要从源实例导出的仓库列表。 您可以使用每行列出一个仓库 URL 的文本文件一次性导出多个仓库。

导出 GitHub Enterprise Server 源仓库

注意:锁定仓库会阻止用户推送到仓库或修改仓库的资源,如议题、标签、里程碑、维基和评论。 新团队和合作者无法与锁定的仓库关联。

如果您执行的试用版,则无需锁定仓库。 否则强烈建议执行此操作。 更多信息请参阅“关于迁移”。

  1. SSH 连接到 您的 GitHub Enterprise Server 实例。

    $ ssh -p 122 admin@HOSTNAME
  2. 要准备需要导出的仓库,请使用 ghe-migrator add 命令和仓库的 URL:

    • 如果您要锁定仓库,请在命令后附加 --lock。 如果您执行的是试运行,则不需要 --lock
      $ ghe-migrator add https://hostname/username/reponame --lock
    • 您可以将 --exclude_attachments 附加到命令,排除文件附件。 文件附件可能很大,可能不必要地胀大您的最终迁移存档。
    • 要一次准备多个将导出的仓库,请创建一个文本文件并在单独的行中列出每个仓库 URL,然后运行包含 -i 标志和您的文本文件路径的 ghe-migrator add 命令。
      $ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URLS.txt
  3. 出现提示时,请输入您的 GitHub Enterprise Server 用户名:

    Enter username authorized for migration:  admin
  4. 出现输入个人访问令牌的提示时,请输入您在“准备 GitHub Enterprise Server 源实例”中创建的访问令牌:

    Enter personal access token:  **************
  5. ghe-migrator add 完成后,它将打印自身生成并用于标识此导出的唯一的“迁移 GUID”以及添加到导出中的资源列表。 在后续的 ghe-migrator addghe-migrator export 步骤中,您将使用它生成的迁移 GUID 指示 ghe-migrator 继续在同一个导出上操作。

    > 101 models added to export
    > Migration GUID: example-migration-guid
    > Number of records in this migration:
    > users                        |  5
    > organizations                |  1
    > repositories                 |  1
    > teams                        |  3
    > protected_branches           |  1
    > pull_request_reviews         |  1
    > milestones                   |  1
    > issues                       |  3
    > pull_requests                |  5
    > pull_request_review_comments |  4
    > commit_comments              |  2
    > issue_comments               | 10
    > issue_events                 | 63
    > releases                     |  3
    > attachments                  |  4
    > projects                     |  2

    每次您添加包含现有迁移 GUID 的新仓库时,它都会更新现有导出。 如果您在没有迁移 GUID的情况下再次运行 ghe-migrator add,将会启动新的导出并生成新的迁移 GUID。 开始准备要导入的迁移时,不要再次使用在导出过程中生成的迁移 GUID

  6. 如果您锁定了源仓库,则可以使用 ghe-migrator target_url 命令,在链接到仓库新位置的仓库页面上设置自定义锁定消息。 传递源仓库 URL、目标仓库 URL 和第 5 步中的迁移 GUID:

    $ ghe-migrator target_url https://hostname/username/reponame https://target_hostname/target_username/target_reponame -g MIGRATION_GUID
  7. 要向同一个导出添加更多仓库,请使用包含 -g 标志的 ghe-migrator add 命令。 您需要传入新仓库 URL 和第 5 步中的迁移 GUID:

    $ ghe-migrator add https://hostname/username/other_reponame -g MIGRATION_GUID --lock
  8. 添加完仓库后,请使用包含 -g 标志和第 5 步中的迁移 GUID 的 ghe-migrator export 命令生成迁移存档:

    $ ghe-migrator export -g MIGRATION_GUID
    > Archive saved to: /data/github/current/tmp/MIGRATION_GUID.tar.gz
    • 要指定迁移文件的暂存位置,请在命令行附加 --staging-path=/full/staging/path。 默认值为 /data/user/tmp
  9. 关闭与 您的 GitHub Enterprise Server 实例 的连接:

    $ exit
    > logout
    > Connection to hostname closed.
  10. 使用 scp 命令将迁移存档复制到您的计算机。 存档文件将使用迁移 GUID 命名:

    $ scp -P 122 admin@hostname:/data/github/current/tmp/MIGRATION_GUID.tar.gz ~/Desktop
  11. 要将存档的迁移数据导入到 GitHub Enterprise Server 实例,请参阅“将迁移数据导入到 GitHub Enterprise Server”。

此文档对您有帮助吗?

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。