从私有化部署版极狐GitLab 迁移到 JihuLab.com。
从 JihuLab.com 迁移到私有化部署版极狐GitLab。
从一个私有化部署版极狐GitLab 实例迁移到另一个。
同一极狐GitLab 实例中的群组之间的迁移。
您可以通过两种方式迁移群组:
通过直接传输(推荐)。
通过上传导出文件。
如果您从私有化部署版极狐GitLab 迁移到 JihuLab.com,管理员可以在私有化部署版实例上创建用户。
在私有化部署版上,
迁移群组资源
功能默认不可用,要在界面上显示此功能,请让管理员
在应用设置中启用它
。
通过直接传输迁移群组,将群组从一个地方复制到另一个地方。您可以:
一次复制多个群组。
将顶级群组复制到:
另一个顶级群组。
任何现有顶级群组的子组。
另一个实例,包括 JihuLab.com
复制群组的同时复制项目(处于 beta 阶段,尚未准备好用于生产)或不复制项目。复制群组的同时复制项目在以下情况可用:
在 JihuLab.com 上默认可用。
在管理员
启用了功能标志
bulk_import_projects
的私有化部署版实例上。
要导出的数据的复杂性和大小。例如,假设您想要迁移两个不同的项目,每个项目有 1000 个合并请求。如果其中一个项目在合并请求上有更多附件、评论和其他内容,则这两个项目需要的迁移时间可能相差非常大。因此,项目上的合并请求数量并不能很好地预测项目迁移所需的时间。
没有确切的公式可以可靠地预估迁移时间。但是,每个流水线 worker 导入项目关系的平均时间可以帮助您大概了解导入项目所需的时间:
实例或 JihuLab.com 之间的网络连接必须支持 HTTPS。
任何防火墙都不得阻止源实例和目标实例之间的连接。
两个实例都必须由实例管理员,
在应用程序设置中启用
通过直接传输群组迁移。
源实例必须运行 14.0 或更高版本。
您必须具有源实例的
个人访问令牌
:
对于 15.1 及更高版本的源实例,个人访问令牌必须具有
api
范围。
对于 15.0 及更早版本的源实例,个人访问令牌必须同时具有
api
和
read_repository
范围。
您必须在源群组具有所有者角色。
您必须在目标群组至少具有维护者角色。
在目标实例上创建所需的用户。迁移到 JihuLab.com 时,您必须手动创建用户,除非使用
SCIM
。使用 API 创建用户仅适用于私有化部署实例,因为它需要管理员访问权限。
检查用户在源实例上的公开电子邮件是否与目标实例上的主电子邮件相匹配。
确保用户在目标实例上确认他们的主要电子邮件地址。大多数用户都会收到一封电子邮件,要求他们确认他们的电子邮件地址。
如果使用像 SAML 这样的 OmniAuth provider,请在极狐GitLab 上,将极狐GitLab 和用户的 SAML 账户关联。目标实例上的所有用户都必须在目标实例上登录并验证他们的账户。如果对 JihuLab.com 群组使用 SAML SSO,用户必须将他们的 SAML 身份关联到他们的 JihuLab.com 账户。
使用文件导出迁移项目,使用与在
群组
和
实例
级别从模板创建项目相同的导出和导入机制。因此,导出资源的列表是相同的。
迁移到目标实例的资源包括:
徽章(引入于 13.11 版本)
史诗(引入于 13.7 版本)
史诗资源状态事件(引入于 15.4 版本)
群组标记(引入于 13.9 版本)
迭代(引入于 13.10 版本)
迭代周期(引入于 15.4 版本)
成员(引入于 13.9 版本)
在以下情况,群组成员与导入的群组相关联:
用户已存在于目标实例中,并且
用户在源实例中有与目标实例中确认的电子邮件匹配的公开电子邮件
里程碑(引入于 13.10 版本)
命名空间设置
里程碑(引入于 15.0 版本)
任何其他资源不会被迁移。
检查目标项目的
projects/stage.rb
文件和
projects/stage.rb
文件。例如,对于 15.9 版本:
https://jihulab.com/gitlab-cn/gitlab/-/blob/15-9-stable-jh/lib/bulk_imports/projects/stage.rb
https://jihulab.com/gitlab-cn/gitlab/-/blob/15-9-stable-jh/ee/lib/ee/bulk_imports/projects/stage.rb
检查目标项目的
project/import_export.yml
文件。例如,对于 15.9 版本:
https://jihulab.com/gitlab-cn/gitlab/-/blob/15-9-stable-ee/lib/gitlab/import_export/project/import_export.yml
。
任何其他资源项都
不
迁移。
如果您选择不将项目与群组一起迁移,或者如果您想重试项目迁移,您可以使用
API
启动仅项目迁移。
caution
通过直接传输迁移群组时迁移项目功能处于
Beta
状态,并且尚未准备好用于生产。
迁移到目标极狐GitLab 实例的资源项包括:
项目(引入于 14.4 版本)
Auto DevOps(引入于 14.6 版本)
徽章(引入于 14.6 版本)
分支(包括受保护的分支)(引入于 14.7 版本)
CI 流水线(引入于 14.6 版本)
提交评论(引入于 15.10 版本)
设计(引入于 15.1 版本)
议题(引入于 14.4 版本)
议题迭代(引入于 15.4 版本)
议题资源状态事件(引入于 15.4 版本)
议题资源里程碑事件(引入于 15.4 版本)
议题资源迭代事件(引入于 15.4 版本)
议题 URL 引用地址(引入于 15.6 版本)
工时统计(引入于 14.4 版本)
议题看板(引入于 14.4 版本)
标记(引入于 14.4 版本)
LFS 对象(引入于 14.8 版本)
成员(引入于 14.8 版本)
合并请求(引入于 14.5 版本)
多个合并请求指派人(引入于 15.3 版本)
合并请求审核者(引入于 15.3 版本)
合并请求核准人(引入于 15.3 版本)
合并请求资源状态事件(引入于 15.4 版本)
合并请求资源里程碑事件(引入于 15.4 版本)
合并请求 URL 引用地址(引入于 15.6 版本)
工时统计(引入于 14.5 版本)
推送规则(引入于 14.6 版本)
里程碑(引入于 14.5 版本)
外部拉取请求(引入于 14.5 版本)
流水线历史(引入于 14.6 版本)
流水线计划(引入于 14.8 版本)
项目功能(引入于 14.6 版本)
发布(引入于 15.1 版本)
发布 Evidences(引入于 15.1 版本)
仓库(引入于 14.4 版本)
代码片段(引入于 14.6 版本)
设置(引入于 14.6 版本)
头像(引入于 14.6 版本)
容器过期策略(引入于 14.6 版本)
项目属性(引入于 14.6 版本)
服务台(引入于 14.6 版本)
上传文件(引入于 14.5 版本)
Wikis(引入于 14.6 版本)
# Get relevant import records
import = BulkImports :: Entity . where ( namespace_id: Group . id ). map ( & :bulk_import ). last
# Alternative lookup by user
import = BulkImport . where ( user_id: User . find ( ... )). last
# Get list of import entities. Each entity represents either a group or a project
entities = import . entities
# Get a list of entity failures
entities . map ( & :failures ). flatten
# Alternative failure lookup by status
entities . where ( status: [ - 1 ]). pluck ( :destination_name , :destination_namespace , :status )