闲碎记事本 闲碎记事本
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YAN

我要偷偷记录...
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • java

  • linux

  • docker

  • redis

  • nginx

  • mysql

  • 其他

    • 跨域处理
    • Homebrew简单语法
    • 音视频处理库
    • ES设置设置密码
    • 关于与或运算的一些理解
    • AI绘画学习
    • Content-Type对应处理
    • gitlab迁移
      • opssl命令
      • certd证书续期
      • git使用
      • Google搜索
      • Emoji速查
    • 环境搭建

    • 知识库
    • 其他
    YAN
    2024-10-31
    目录

    gitlab迁移

    docker版本gitlab迁移

    # 开始备份

    注意

    在迁移 gitlab 数据前首先要确保新旧服务器上安装的 gitlab 版本是一致的。

    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/05/14, 01:34:05
    Content-Type对应处理
    opssl命令

    ← Content-Type对应处理 opssl命令→

    最近更新
    01
    Caddy操作指南
    04-25
    02
    Swap空间
    04-22
    03
    Alist使用
    04-21
    更多文章>
    Theme by Vdoing | Copyright © 2022-2025 YAN | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式