gitlab迁移
docker版本gitlab迁移
# 开始备份
首先需要进入容器,可参考
# 备份
gitlab-rake gitlab:backup:create
会在 /var/opt/gitlab/backups/
生成备份文件,需要将新备份上传到新的gitlab服务器中。
# 复制备份文件
# 假设 a2c6ff1e9acc 是容器ID, 1744250327_2025_04_10_14.6.1_gitlab_backup.tar 是备份的文件
docker cp a2c6ff1e9acc:/var/opt/gitlab/backups/1744250327_2025_04_10_14.6.1_gitlab_backup.tar ./
手动上传到新主机
# 停止新服务器上gitlab数据连接服务
# 关闭Web界面
gitlab-ctl stop unicorn
# 关闭Web界面
gitlab-ctl stop puma
# 关闭异步任务
gitlab-ctl stop sidekiq
# 恢复备份文件到GitLab
指定文件恢复
gitlab-backup restore BACKUP=<备份文件名>
恢复至最新
gitlab-backup restore
# 重启gitlab
gitlab-ctl restart
也可以直接重启gitlab的docker容器
# 附
# 升级至指定版本
yum install -y gitlab-ce-10.8.7-ce.0.el7
# 升级至最新
yum install -y gitlab-ce
# 解决web页面无法删除项目问题
进入容器
docker-compose exec git /bin/bash
进入控制台
gitlab-rails console
执行删除
# 查找一个项目
project = Project.find_by_full_path('group/problematic_project')
# 删除这个查找到的项目
project.merge_requests.destroy_all # 删除所有合并请求
project.issues.destroy_all # 删除所有问题
project.destroy! # 然后删除项目
# 一些其他的控制台操作
查找并修改用户:
user = User.find_by(email: 'user@example.com')
user.name = 'New Name' # 修改用户名称
user.save! # 保存更改
删除用户:
user = User.find_by(username: 'username_to_delete')
user.destroy! # 永久删除用户
检查项目状态:
project = Project.find_by_full_path('group/project_name')
project.visibility # 查看项目可见性
project.repository_exists? # 检查仓库是否存在
组 (Group) 和其他实体管理
group = Group.find_by_path('group_name')
删除组
group = Group.find_by_path('group_to_delete')
group.destroy!
批量组操作:
Project.where(namespace_id: some_group_id).each { |p| p.destroy! } # 删除组下的所有项目
上次更新: 2025/04/25, 10:46:05