Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

从企业导出迁移数据

要更改平台或从试用实例迁移到生产实例,可以通过准备实例、锁定仓库和生成迁移存档来从 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/REPO-NAME --lock
    • 可以通过将 --exclude_attachments 附加到命令来排除文件附件。 文件附件可能很大,可能不必要地胀大您的最终迁移存档。
    • 要一次准备多个将导出的存储库,请创建一个文本文件并在单独的行中列出每个存储库 URL,然后运行包含 ghe-migrator add 标志和文本文件路径的 -i 命令。
      $ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt
  3. 出现提示时,请输入您的 GitHub Enterprise Server 用户名:

    Enter username authorized for migration:  admin
  4. 当系统提示输入 personal access token 时,请输入你在“准备 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/REPO-NAME https://TARGET-HOSTNAME/TARGET-USER-NAME/TARGET-REPO-NAME -g MIGRATION-GUID
  7. 若要将更多存储库添加到同一导出,请使用带有 -g 标志的 ghe-migrator add 命令。 您需要传入新仓库 URL 和第 5 步中的迁移 GUID:

    $ ghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -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 实例中,请参阅“准备将数据迁移到企业”。