Gitlab全量迁移
Gitlab全量迁移
- 一、背景
- 1.前提条件
一、背景
公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上。Gitlab官方推荐了先备份然后再恢复的方法。个人采用官方的另外一种方法,就写这篇文章给需要的小伙伴参考。
源Gitlab: http://old.mygitlab.com #地址需更换为自己的gitlab地址
目标Gitlab: http://new.mygitlab.com
1.前提条件
(1)Linux主机一台并安装Docker
(2)服务器磁盘需要能够存储源Gitlab的代码,迁移工具会先把代码全部拉到本地,然后再推送到目标Gitlab
① 步骤
- root 账号登录Linux服务器,并拉取迁移工具的镜像
docker pull 镜像
② 依次运行以下命令
#获取镜像id
docker images|grep congregate
registry.cn-hangzhou.aliyuncs.com/dockerforkevin/congregate centos-20220312 4bd6a78c0a68 2 months ago 2.3GB#运行容器,并在容器中修改/var/run/docker.sock权限
docker run \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/hosts:/etc/hosts \
-p 8000:8000 \
-it 4bd6a78c0a68
/bin/bash#容器内部命令
[ps-user@a4e8ef2730ed congregate]$sudo chmod 666 /var/run/docker.sock
#按Ctrl+D退出容器#再次启动容器
docker start <container-id>
③ 进入容器中添加配置文件
#Linux主机
[root@minikube ~]# docker exec -it <container-id> /bin/bash
#Docker容器中
[ps-user@a4e8ef2730ed congregate]$ mkdir -p data
[ps-user@a4e8ef2730ed congregate]$vi data/congregate.conf
congregate.conf文件内容
[DESTINATION]
dstn_hostname = http://new.mygitlab.com #目标Gitlab仓库地址
dstn_access_token = ek04Xy1RbzVpVk5IWnFYYVY3enM= #目标Gitlab管理员Token
import_user_id = 4
shared_runners_enabled = True
project_suffix = False
max_import_retries = 3
username_suffix = gd
mirror_username =
max_asset_expiration_time = 24[SOURCE]
src_type = GitLab
src_hostname = http://old.mygitlab.com #源Gitlab仓库地址
src_access_token = aW9uQ3B2TlhkWVpwRnNQV2h5SC0= #源Gitlab管理员Token
src_tier = core
export_import_timeout = 300 #这个时间很重要,控制导入和导出的超时时间,如果仓库很大,可以把这个时间调长一点,单位是秒[EXPORT]
location = filesystem
filesystem_path = /opt/congregate[USER]
keep_inactive_users = False
reset_pwd = True
force_rand_pwd = False[APP]
export_import_status_check_time = 10
wave_spreadsheet_path = wave
mongo_host = localhost
mongo_port = 27017
ui_port = 8000
processes = 4
④ 获取源仓库的元数据(MetaData)
#获取源仓库的元数据
[ps-user@a4e8ef2730ed congregate]$./congregate.sh list
⑤ 通过UI方式创建需要迁移的对象的列表
[ps-user@a4e8ef2730ed congregate]$./congregate.sh ui &
浏览器方式访问本地:8000端口,Projects是Git仓库,全选然后点击"Stage"按钮,切换到Groups(项目组),全选然后点击“Stage”,切换到Users(用户),全选然后点击“Stage”

所有的按钮点击完成以后,会在data目录下生成3个json文件
[ps-user@a4e8ef2730ed congregate]$ ls -ltr data/staged_*.json
-rw-rw-r-- 1 ps-user ps-user 70439 Mar 12 10:19 data/staged_groups.json
-rw-rw-r-- 1 ps-user ps-user 322311 Mar 12 10:19 data/staged_projects.json
-rw-rw-r-- 1 ps-user ps-user 61408 Mar 12 10:19 data/staged_users.json
⑥ 执行迁移
#先迁移Gitlab账户
[ps-user@a4e8ef2730ed congregate]$./congregate.sh migrate --skip-group-export --skip-group-import --skip-project-export --skip-project-import --commit
#再迁移Gitlab项目组
[ps-user@a4e8ef2730ed congregate]$./congregate.sh migrate --skip-users --skip-project-export --skip-project-import --commit
#最后迁移Gitlab仓库(也叫项目),这个比较耗时间,视源仓库代码量的多少
[ps-user@a4e8ef2730ed congregate]$./congregate.sh migrate --skip-users --skip-group-export --skip-group-import --commit

参考博客:
https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/-/blob/master/docs/using-congregate.md#quick-start
相关文章:
Gitlab全量迁移
Gitlab全量迁移 一、背景1.前提条件 一、背景 公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上。Gitlab官方推荐了先备份然后再恢复的方法。个人采用官方的另外一种方法,就写这篇文章给需要的小伙伴参考。 源Gitlab: http://old.mygitlab.com #地…...
Golang ProtoBuf 初学者完整教程:语法
一、编码规范推荐 1、文件名使用小写下划线的命名风格,例如 lower_snake_case.proto 2、使用 2 个空格缩进 3、包名应该和目录结构对应 4、消息名使用首字母大写驼峰风格(CamelCase),例如message StudentRequest { ... } 5、字段名使用小写下划线的风格…...
使用.cc域名的优势
域名注册越来越难了,很多人选择结尾加123、56、365等等数字,总感觉怪怪的。那么能不能选择其他后缀的域名呢?我感觉可以,大部分用户都不会去看域名,只有做技术的会去关注。 使用.cc域名的优势 很多好域名,…...
存储器管理单元MMU概述
在ARM系统中,存储器管理单元MMU主要完成以下工作: ● 虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。页…...
了解监控易(25):网络拓扑管理,可视化监控网络,快速定位问题
在复杂的网络环境中,快速准确地定位问题、确保网络的稳定运行是至关重要的。监控易的网络拓扑管理功能,正是为了解决这一问题而设计的。该功能通过可视化监控网络,帮助用户迅速把握网络整体状况,快速定位并解决问题。 监控易的网络…...
C#学习笔记10:winform上位机与西门子PLC网口通信_中篇_winform的窗口操作设计、日志的添加使用
今日继续我的C#winform上位机学习之路 这系列笔记的目标是尝试编写一个能够与西门子PLC进行以太网口通信的上位机软件。 文章提供完整代码解释、设计点解释、测试效果图、完整工程下载 本章主要学习:Winform多个窗体的一些操作 、无边框窗体的创建、Combox组件插…...
第14章 大数据与数据科学知识点梳理
第14章 大数据与数据科学知识点梳理(附带页码) ◼ 原则:组织应仔细管理与大数据源相关的元数据,以便对数据文件及其来源和价值进行准确的清单管理。P386 ◼ 大数据:数据量大(Volume)、数据更新…...
FHE全同态加密简介
1. 何为FHE? FHE (Fully homomorphic encryption): 是一种隐私技术,支持直接对密文进行计算,而无需对密文先解密再计算。即,任何第三方或云厂商,都可对敏感信息的密文进行处理,而无需访问密文内…...
【vue】跨组件通信--依赖注入
import { provide,inject } from vue provide:将父组件的数据传递给所有子组件(子孙都有)inject:接收provide 项目文件结构 App.vue是Header.vue的父组件,Header.vue是Nav.vue的父组件 传值过程 App.vue <tem…...
Aritest+python+Jenkins解放双手iOS/Android自动化
ARITest、Python 和 Jenkins 可以结合在一起创建一个自动化测试解决方案,实现持续集成和持续测试的目标。以下是三者如何协同工作的基本概念: 1. **ARITest**: ARITest 是一款功能全面的自动化测试工具,提供 UI 自动化、接口自…...
Problem #7 [Medium]
This problem was asked by Facebook. Given the mapping a = 1, b = 2, … z = 26, and an encoded message, count the number of ways it can be decoded. For example, the message ‘111’ would give 3, since it could be decoded as ‘aaa’, ‘ka’, and ‘ak’. Y…...
MySQ数据库: MySQL数据库的安装配置 ,图文步骤详细,一篇即可完成安装完成! MySQL数据库如何与客户端连接
LiuJinTao: 2024年4月14日 文章目录 MySQL的安装配置1. 下载2. 安装 三、 MySQL 启动与停止1. 第一种 方式:2. 第二种方式: 四、MySQL 客户端连接2. 方式二: MySQL的安装配置 1. 下载 官方下载网址:https://www.mysq…...
vue3+vant自动导入+pina+vite+js+pnpm搭建项目框架
vue3vant自动导入pinavitejspnpm搭建项目框架 文章目录 vue3vant自动导入pinavitejspnpm搭建项目框架1. 安装pnpm(如果还没有安装):2. 创建项目目录并进入该目录:3. 初始化项目:4. 安装Vite作为构建工具:5.…...
使用 Axios 处理 AxiosError 的三种常见方法
在使用 Axios 时处理 AxiosError 有几种常见的方法: 使用 try-catch 语句捕获异常: try {const response await axios.get(/api/data);// 处理响应数据 } catch (error) {if (error.response) {// 请求成功但状态码不在 2xx 范围console.log(error.response.data);console.l…...
linux上安装Tomcat
安装Tomcat 安装JDK https://www.oracle.com/java/technologies/downloads/#license-lightbox mkdir -p /usr/java tar xf jdk-11.0.22_linux-x64_bin.tar.gz ln -sv /usr/java/jdk /usr/java/jdk-11.0.22配置环境变量: cat > /etc/profile.d/java.sh <&…...
Ubuntu20.04安装ROS过程记录以及常见报错处理
官网安装步骤如下: http://wiki.ros.org/cn/noetic/Installation/Ubuntu#A.2BXwBZy1uJiMU- 第一个:添加ROS软件源 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-la…...
PaddleOCR 图片日期识别
目录 一 . 获取图片信息种对应坐标区域日期信息 (类型为1:http链接 类型为 2本地图片路径) 二 . ocr图片识别日期信息获取,调用获取图片区域相应位置方法 三 . 如有所需获取rtsp流回放格式 四 . 完整代码如下 (…...
HTML5学习记录
简介 超文本标记语言(HyperText Markup Language,简称HTML),是一种用于创建网页的标准标记语言。 编辑器 下载传送门https://code.visualstudio.com/ 下载编辑器插件 标题 标题通过 <h1> - <h6> 标签进行定义。 …...
提升法律文书起草效率:AlphaGPT 助力律师快速生成诉讼和仲裁文件
法律文书起草对于法律专业人士而言是一项基础而关键的任务。无论是民事、刑事还是行政诉讼,以及仲裁案件,精确的法律文书撰写对于案件的成功至关重要。然而,这一过程往往既耗时又复杂,尤其是在处理复杂的案情和面对当事人难以理解…...
大数据之 Hive 快速搭建的详细步骤
Hive hive 搭建三种模式: 内嵌模式本地模式远程模式内嵌模式 Hadoop 和 Hive 整合 修改 hadoop/etc/下的 core-site.xml: <property><name>hadoop.proxyuser.root.hosts</name><value>*</value> </property> <property><nam…...
3.23-3.25笔记
这期实现温湿度采集、光照强度监测、智能设备控制(加湿器、PWM 调光 LED、PWM 调速风扇)确定引脚,根据原理图找出可以使用的引脚开关。根据手册信息PWM口GPIO0_D0和GPIO0_C6,把设备树GPIO0_D0做5G的复位disable,再加入…...
SDPose-Wholebody模型在卷积神经网络架构上的创新优化
SDPose-Wholebody模型在卷积神经网络架构上的创新优化 人体姿态估计技术正在从简单的身体关节点检测向全身精细化识别演进,而SDPose-Wholebody通过创新的卷积神经网络架构设计,将这一技术推向了新的高度。 1. 核心架构设计突破 SDPose-Wholebody的最大创…...
Axure RP 10实战:3分钟搞定Tab切换效果(附交互样式设置技巧)
Axure RP 10高级Tab切换效果:从基础实现到专业级交互设计 在当今快节奏的数字化产品设计领域,Tab切换作为最常见的用户界面元素之一,其交互体验的优劣直接影响用户对产品的第一印象。Axure RP 10作为行业领先的原型设计工具,提供了…...
人脸检测开源生态新成员:cv_resnet101_face-detection_cvpr22papermogface ModelScope集成详解
人脸检测开源生态新成员:cv_resnet101_face-detection_cvpr22papermogface ModelScope集成详解 1. 项目概述 今天要介绍的是一个特别实用的人脸检测工具——基于MogFace模型开发的本地高精度人脸检测系统。这个工具解决了PyTorch新版本加载旧模型的兼容性问题&…...
深蓝词库转换:20+输入法词库互通的完整实战指南
深蓝词库转换:20输入法词库互通的完整实战指南 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 你是否曾在切换输入法时,为无法迁移多年积累的…...
OpenClaw 小龙虾Windows10 专属一键部署教程|10 分钟搞定本地 AI 数字员工
适配系统:Windows10 64 位(纯小白友好版) 核心优势:免命令行、免环境配置、解压即装,内置所有运行依赖,全程可视化操作,新手也能一次成功部署 2026 爆火的开源 AI 智能体! 本文专属…...
C++ 静态成员的生命周期管理
C静态成员的生命周期管理是面向对象编程中一个既基础又关键的话题。静态成员作为类的特殊成员,其生命周期与普通成员变量截然不同,理解它们的初始化、销毁时机以及线程安全等问题,对于编写健壮高效的C代码至关重要。本文将深入探讨静态成员的…...
巨有科技智慧市集系统,数字化工具降本增效!
从城市商圈到景区古镇,从乡村田园到文创园区,各类市集遍地开花,但管理难题始终是制约行业发展的最大瓶颈。人工登记杂乱、对账结算繁琐、现场管控滞后、数据完全空白,一场中型市集就要耗费大量人力物力,大型市集更是纠…...
如何在macOS上实现高效Android USB网络共享:HoRNDIS完整指南
如何在macOS上实现高效Android USB网络共享:HoRNDIS完整指南 【免费下载链接】HoRNDIS Android USB tethering driver for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/ho/HoRNDIS Android USB网络共享是许多开发者和技术爱好者经常需要的功能&#…...
别只调参了!用LoRA微调Qwen2.5打造专属“数学家教”:从数据清洗到效果评测
用LoRA微调Qwen2.5打造数学解题专家:从数据工程到效果验证的全链路实践 当教育科技遇上大语言模型,数学辅导正在经历一场静默革命。传统解题工具往往停留在答案生成层面,而具备思维链(Chain-of-Thought)能力的模型能像…...
