准备 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 连接到任何节点。 有关 SSH 访问权限的详细信息,请参阅“访问管理 shell (SSH)”。
ssh -p 122 admin@HOSTNAME
-
要准备需要导出的存储库,请使用
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
-
-
出现提示时,请输入您的 GitHub Enterprise Server 用户名:
Enter username authorized for migration: admin
-
当系统提示输入 personal access token 时,请输入你在“准备 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 的新仓库时,它都会更新现有导出。 如果在没有迁移 GUID的情况下再次运行
ghe-migrator add
,将会启动新的导出并生成新的迁移 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”。