在 Linux 下迁移 GitLab 数据,常见场景有两类:同版本迁移(推荐) 和 跨版本/跨服务器迁移。下面按最稳妥、官方推荐的方式讲。
gitlab-rake gitlab:env:info
或
cat /opt/gitlab/version-manifest.txt
✅ 迁移建议:源和目标 GitLab 版本必须一致
gitlab-ctl stop
gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
文件名类似:
1690000000_2023_07_22_gitlab_backup.tar
scp /var/opt/gitlab/backups/*.tar root@目标IP:/var/opt/gitlab/backups/
/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
scp /etc/gitlab/gitlab.rb root@目标IP:/etc/gitlab/
scp /etc/gitlab/gitlab-secrets.json root@目标IP:/etc/gitlab/
# 以 CentOS 为例
yum install gitlab-ee-<版本号>
或参考官方安装文档。
external_url 'http://新域名或IP'
gitlab-ctl reconfigure
gitlab-ctl stop
gitlab-rake gitlab:backup:restore BACKUP=1690000000_2023_07_22
⚠️ 注意:
BACKUP 只写时间戳部分gitlab-ctl start
gitlab-rake gitlab:check SANITIZE=true
访问 Web 页面,确认:
/var/opt/gitlab/
⚠️ 必须完全停机、版本一致,否则极易损坏
适合:
✅ 先升级源 GitLab 到目标版本,再备份
❌ CI/CD、Registry、密钥会失效
gitlab-ctl restart
如果你愿意,可以告诉我:
我可以给你精确到命令的迁移方案。