gitlab备份迁移恢复和汉化

一 备份gitlab数据(每台凌晨0点)

crontab -e
0 0 * * * /bin/bash -x /root/script/gitlab_backup.sh > /dev/null 2>&1

编写完 /etc/crontab 文件之后,需要重新启动cron服务

重新加载cron配置文件

sudo /usr/sbin/service cron reload

重启cron服务

sudo /usr/sbin/service cron restart 

恢复gitlab

恢复前需要先停掉数据连接服务:

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

如果是台空主机,没有任何操作,理论上不停这两个服务也可以。停这两个服务是为了保证数据一致性。如果你没修改过默认备份目录的话,将老服务器/data/gitlab/backups目录下的备份文件拷贝到新服务器上
拷贝

chmod 777 1579363319_2020_01_19_9.3.6_gitlab_backup.tar

执行下面的命令进行恢复:后面再输入两次yes就完成恢复了。

gitlab-rake gitlab:backup:restore BACKUP=1579363319_2020_01_19_9.3.6

在此启动

gitlab-ctl start

检查下恢复情况

gitlab-rake gitlab:check SANITIZE=true

三 迁移后删除项目报错500

进入数据库

gitlab-rails dbconsole
UPDATE projects SET runners_token = null, runners_token_encrypted = null;
UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
UPDATE application_settings SET runners_registration_token_encrypted = null;

汉化过程

查看版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

当前版本为v9.3.6,并确认汉化版本库是否包含该版本的汉化标签(-zh结尾),也就是是否包含 v9.3.6-zh

下载汉化包并汉化
克隆汉化版本库,此处用了好久的时间,拉取这个分支,没有更好的办法,可以自行百度一下git慢的解决方式

 git clone https://gitlab.com/xhang/gitlab.git

如果已经克隆过,则进行更新

git fetch

比较汉化标签和原标签,导出 patch 用的 diff 文件.进入刚才的目录git clone 的目录

cd gitlab
git diff v9.3.6 v9.3.6-zh > ../9.3.6-zh.diff

上传 9.3.6-zh.diff文件到服务器停止 gitlab

gitlab-ctl stop
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ../9.3.6-zh.diff

重启gitlab即可.

gitlab-ctl start

执行重新配置命令

gitlab-ctl reconfigure

卸载

gitlab-ctl uninstall
rpm -e gitlab-ce