Prérequis Gardez la version de Gitlab aussi cohérente que possible pour éviter des problèmes inutiles. Si vous souhaitez mettre à niveau la version de Gitlab , vous pouvez mettre à niveau la version séparément après la migration des données et installer l'article GitLab
Sauvegardez le référentiel Gitlab d'origine
# 停止gitlab服务,防止对git有事务操作
gitlab-ctl stop sidekiq
gitlab-ctl stop Puma
# 数据全库备份命令
gitlab-rake gitlab:backup:create
Le fichier de sauvegarde sera automatiquement stocké dans le chemin de sauvegarde, et la configuration de la propriété gitlab_rails['backup_path'] dans le fichier de configuration ( /etc/gitlab/gitlab.rb ), si elle n'est pas configurée, prend par défaut la valeur /var/opt/gitlab /backups emplacement, qui doit être Pour restaurer la sauvegarde, le chemin pointé par le fichier de sauvegarde doit être l'adresse du fichier de sauvegarde
L'utilisation de la commande ci-dessus créera un package compressé avec un nom similaire à 1537261122_2018_09_18_9.2.5_gitlab_backup.tar dans le répertoire /var/opt/gitlab/backups (par défaut). Ce package compressé est la partie complète de Gitlab. Le début de 1537261122_2018_09_18_9. 2.5 est l'horodatage et la date de la sauvegarde
Le nom du fichier de sauvegarde n'est pas autorisé à être modifié, et le suffixe _gitlab_backup.tar
Envoyez le fichier de sauvegarde, vous pouvez utiliser la commande scp ou d'autres méthodes
Définir les autorisations de fichier de sauvegarde, les autorisations de changement d'environnement peuvent être insuffisantes
chmod 644 1537261122_2018_09_18_9.2.5_gitlab_backup.tar
Restaurez la sauvegarde (l'emplacement du fichier de sauvegarde doit être cohérent avec la configuration dans le fichier de configuration /etc/gitlab/gitlab.rb, sinon il ne peut pas être lu)
# 命令中省去后缀 ‘_gitlab_backup.tar’,否则命令无法识别文件
gitlab-rake gitlab:backup:restore BACKUP=1537261122_2018_09_18_9.2.5
Redémarrez simplement Gitlab
Parmi eux, les comptes non-ROOT et d'autres informations de compte sont migrés de manière cohérente
Tous les projets, toutes les branches et toutes les autorisations utilisateur (non-ROOT) sont migrés de manière cohérente