准备 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 中的迁移 GUID
ghe-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”。