以下是在Debian上进行GitLab数据迁移的常用技巧及关键步骤:
备份数据
使用GitLab自带工具备份所有数据(含仓库、配置、用户信息等):
sudo gitlab-rake gitlab:backup:create
备份文件默认存放在/var/opt/gitlab/backups/
目录,可通过gitlab.rb
修改路径。
版本一致性检查
确保新旧服务器的GitLab版本一致或兼容,避免迁移后出现不兼容问题。
传输备份文件
通过scp
命令将备份文件(含gitlab.rb
和gitlab-secrets.json
配置文件)从旧服务器复制到新服务器对应目录:
scp /var/opt/gitlab/backups/backup.tar root@new_server:/var/opt/gitlab/backups/
scp /etc/gitlab/gitlab.rb root@new_server:/etc/gitlab/
scp /etc/gitlab/gitlab-secrets.json root@new_server:/etc/gitlab/
恢复数据
在新服务器上停止GitLab服务后,使用备份文件恢复数据:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=备份文件名
恢复后需确保文件权限正确(chown git:git
)。
配置与重启
gitlab.rb
配置文件(如external_url
),确保与新环境匹配。sudo gitlab-ctl reconfigure
使配置生效,然后重启服务:sudo gitlab-ctl restart
验证迁移结果
高级技巧(可选)
rsync
同步仓库数据(需停止服务),或通过GitLab API迁移特定项目。gitlab-migrator
)批量迁移用户权限和合并请求。注意事项:
scp
或rsync
over SSH)。参考来源: