Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-09-28. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

从企业导出迁移数据

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

准备 GitHub Enterprise Server 源实例

  1. 验证您在 GitHub Enterprise Server 源上是站点管理员。 执行此操作的最佳方法是验证是否可以通过 SSH 连接到实例

  2. 在 GitHub Enterprise Server 源实例上生成具有 repoadmin:org 作用域的访问令牌

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

导出 GitHub Enterprise Server 源仓库

注意:锁定存储库会阻止对存储库的所有写入访问。 您不能将新团队或协作者与锁定的仓库相关联。

如果您执行的试用版,则无需锁定仓库。 从正在使用的存储库迁移数据时,GitHub 强烈建议锁定存储库。 有关详细信息,请参阅“关于迁移”。

  1. SSH 连接到 your GitHub Enterprise Server instance。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 有关 SSH 访问的详细信息,请参阅“访问管理 shell (SSH)”。

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

    • 如果要锁定存储库,请在命令后附加 --lock。 如果要执行试用运行,则不需要 --lock
      $ ghe-migrator add https://hostname/username/reponame --lock
    • 可以通过将 --exclude_attachments 附加到命令来排除文件附件。 文件附件可能很大,可能不必要地胀大您的最终迁移存档。
    • 要一次准备多个将导出的存储库,请创建一个文本文件并在单独的行中列出每个存储库 URL,然后运行包含 ghe-migrator add 标志和文本文件路径的 -i 命令。
      $ 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. 关闭与 your GitHub Enterprise Server instance 的连接:

    $ 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 实例中,请参阅“准备将数据迁移到企业”。