准备 GitHub Enterprise Server 源实例
-
验证您在 GitHub Enterprise Server 源上是站点管理员。 最好的方式是验证您可以通过 SSH 访问实例。
-
在 GitHub Enterprise Server 源实例上生成范围为
repo
和admin:org
的访问令牌。。 -
为尽量减少停机,请创建要从源实例导出的仓库列表。 您可以使用每行列出一个仓库 URL 的文本文件一次性导出多个仓库。
导出 GitHub Enterprise Server 源仓库
注意: 锁定仓库会阻止对仓库的所有读取或写入。 您不能将新团队或协作者与锁定的仓库相关联。 如果您执行的试用版,则无需锁定仓库。 当您从正在使用的仓库迁移数据时,
GitHub 强烈建议锁定仓库。 更多信息请参阅“关于迁移”。
-
SSH 连接到 您的 GitHub Enterprise Server 实例。 更多信息请参阅“访问管理 shell (SSH)。”
$ ssh -p 122 admin@HOSTNAME
-
要准备需要导出的仓库,请使用
ghe-migrator add
命令和仓库的 URL:- 如果您要锁定仓库,请在命令后附加
--lock
。 如果您执行的是试运行,则不需要--lock
。$ ghe-migrator add https://hostname/username/reponame --lock
- 您可以将
--exclude_attachments
附加到命令,排除文件附件。 文件附件可能很大,可能不必要地胀大您的最终迁移存档。 - 要一次准备多个将导出的仓库,请创建一个文本文件并在单独的行中列出每个仓库 URL,然后运行包含
-i
标志和您的文本文件路径的ghe-migrator add
命令。$ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URLS.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 的新仓库时,它都会更新现有导出。 如果您在没有迁移 GUID的情况下再次运行
ghe-migrator add
,将会启动新的导出并生成新的迁移 GUID。 开始准备要导入的迁移时,不要再次使用在导出过程中生成的迁移 GUID。 -
如果您锁定了源仓库,则可以使用
ghe-migrator target_url
命令,在链接到仓库新位置的仓库页面上设置自定义锁定消息。 传递源仓库 URL、目标仓库 URL 和第 5 步中的迁移 GUID:$ ghe-migrator target_url https://hostname/username/reponame https://target_hostname/target_username/target_reponame -g MIGRATION_GUID
-
要向同一个导出添加更多仓库,请使用包含
-g
标志的ghe-migrator add
命令。 您需要传入新仓库 URL 和第 5 步中的迁移 GUID:$ ghe-migrator add https://hostname/username/other_reponame -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 Enterprise Server 实例 的连接:
$ 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 实例,请参阅“准备将数据迁移到企业”。