跳至主要内容

从 GitHub Enterprise Server 导出迁移数据

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

准备 GitHub Enterprise Server 源实例

  1. 确保您是 GitHub Enterprise Server 源实例的站点管理员。最直接的方式是确认您能够SSH 进入实例

  2. 生成访问令牌,并在 GitHub Enterprise Server 源实例上授予 repoadmin:org 范围。

  3. 为将停机时间降至最低,请列出要从源实例导出的仓库。您可以使用文本文件一次性添加多个仓库,文件中每行写入一个仓库的 URL。

导出 GitHub Enterprise Server 源仓库

注意

锁定仓库会阻止对该仓库的所有写操作。锁定后,您无法为仓库关联新的团队或协作者。

如果您正在进行试运行,则无需锁定仓库。当从正在使用的仓库迁移数据时,GitHub 强烈建议锁定该仓库。更多信息请参阅关于 ghe-migrator

  1. SSH 进入 GitHub.com。如果您的实例由多个节点组成,例如已配置高可用或地理复制,请 SSH 进入主节点。若使用集群,则可 SSH 任意节点。将 HOSTNAME 替换为实例的主机名,或节点的主机名或 IP 地址。更多信息请参阅访问管理 Shell(SSH)

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 要为导出准备仓库,请使用带有仓库 URL 的 ghe-migrator add 命令

    • 如果要锁定仓库,请在命令后追加 --lock。进行试运行时无需使用 --lock

      ghe-migrator add https://HOSTNAME/USERNAME/REPO-NAME --lock
      
    • 您可以通过在命令后追加 --exclude_attachments 来排除文件附件。文件附件可能体积庞大,会不必要地增大最终迁移归档的体积。

    • 要一次性为多个仓库准备导出,请创建一个文本文件,每行列出一个仓库的 URL,然后使用带 -i 参数和文件路径的 ghe-migrator add 命令。

      ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt
      
  3. 提示输入时,填写您的 GitHub Enterprise Server 用户名

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

    Enter personal access token:  **************
    
  5. ghe-migrator add 完成后,它将打印出唯一的“Migration GUID”,用于标识本次导出,同时列出已加入导出的资源。稍后在 ghe-migrator addghe-migrator export 步骤中,您需要使用该 Migration 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
    

    每次使用已有的 Migration GUID 添加新仓库时,系统会更新现有的导出。如果在没有提供 Migration GUID 的情况下再次运行 ghe-migrator add,则会启动新的导出并生成新的 Migration GUID。在准备迁移导入时,请勿重复使用导出期间生成的 Migration GUID

  6. 若要向同一导出中添加更多仓库,请使用带 -g 参数的 ghe-migrator add 命令,并提供新仓库的 URL 以及步骤 5 中的 Migration GUID

    ghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock
    
  7. 添加完所有仓库后,使用带 -g 参数并指定步骤 5 中 Migration 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
  8. 关闭与 GitHub.com 的连接

    $ exit
    > logout
    > Connection to HOSTNAME closed.
    
  9. 使用scp命令将迁移归档复制到本地电脑。归档文件名称将采用 Migration GUID 命名

    scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop
    
  10. 若要为导入 GitHub Enterprise Server 实例准备已归档的迁移数据,请参阅迁移数据到 GitHub Enterprise Server

© . This site is unofficial and not affiliated with GitHub, Inc.