准备 GitHub Enterprise Server 源实例
-
验证你是否是 GitHub Enterprise Server 源上的站点管理员。验证的最佳方法是验证你可以通过 SSH 进入实例。
-
生成访问令牌,其中包含 GitHub Enterprise Server 源实例上的
repo
和admin:org
范围。 -
为了最大程度地减少停机时间,请列出你想要从源实例导出的存储库。你可以使用文本文件将多个存储库添加到导出中,该文本文件在单独的行中列出每个存储库的 URL。
导出 GitHub Enterprise Server 源存储库
注意:锁定存储库会阻止对存储库的所有写入访问。你无法将新团队或协作者与锁定的存储库关联。
如果你正在执行试运行,则无需锁定存储库。当从正在使用的存储库中迁移数据时,GitHub 强烈建议锁定存储库。有关更多信息,请参阅“关于 ghe-migrator”。
-
通过 SSH 登录 GitHub.com。如果你的实例包含多个节点,例如,如果配置了高可用性或地理复制,请通过 SSH 登录主节点。如果你使用集群,则可以 SSH 登录任何节点。将 HOSTNAME 替换为你的实例的主机名,或节点的主机名或 IP 地址。有关更多信息,请参阅“访问管理 shell (SSH)”。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
要准备存储库以供导出,请对存储库的 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
-
-
出现提示时,输入你的 GitHub Enterprise Server 用户名
Enter username authorized for migration: admin
-
当提示输入个人访问令牌时,输入你在“准备 GitHub Enterprise Server 源实例”中创建的访问令牌
Enter personal access token: **************
-
当
ghe-migrator add
完成时,它将打印它生成的唯一“迁移 GUID”,以识别此导出以及已添加到导出中的资源列表。你将在后续的ghe-migrator add
和ghe-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 添加新存储库时,它都会更新现有导出。如果你再次运行
ghe-migrator add
而没有迁移 GUID,它将启动一个新导出并生成一个新的迁移 GUID。在开始准备迁移以进行导入时,请不要重复使用导出期间生成的迁移 GUID。 -
要将更多存储库添加到同一导出,请使用带有
-g
标志的ghe-migrator add
命令。你将传入新存储库 URL 和步骤 5 中的迁移 GUIDghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock
-
当你完成添加存储库后,请使用带有
-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
。
- 要指定迁移文件的分段位置,请使用
-
关闭与 GitHub.com 的连接。
$ exit > logout > Connection to HOSTNAME closed.
-
使用
scp
命令将迁移存档复制到您的计算机。存档文件将以迁移 GUID 命名。scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop
-
要准备存档的迁移数据以导入到 GitHub Enterprise Server 实例中,请参阅“将数据迁移到 GitHub Enterprise Server”。