migration gitlab
Contexte
- Avant que gitlab ne soit déployé sur la machine Alibaba Cloud, le réseau externe étant relativement peu sécurisé, nous avons envisagé de passer au réseau interne.
alentours
- Déploiement de docker gitlab-11.11.3
Mettre en œuvre
- Sauvegarde
docker exec -ti gitlab bash gitlab-rake gitlab:backup:create docker cp gitlab:/var/opt/gitlab/backups/1612427334_2021_02_04_11.11.3_gitlab_backup.tar .
- Démarrez la même version de gitlab sur la machine intranet (la même version est requise pour la sauvegarde et la restauration de gitlab)
docker exec -ti gitlab bash
mv 1612427334_2021_02_04_11.11.3_gitlab_backup.tar /var/opt/gitlab/backups/
chmod 755 /var/opt/gitlab/backups/1612427334_2021_02_04_11.11.3_gitlab_backup.tar
chown root:root /var/opt/gitlab/backups/1612427334_2021_02_04_11.11.3_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1612427334_2021_02_04_11.11.3
problème
1. Accédez à la page ci / cd runner et signalez 500
gitlab-rails console
Ci::Runner.all.update_all(token_encrypted: nil)
gitlab-rails dbconsole
UPDATE projects SET runners_token = null, runners_token_encrypted = null;
2. Créez un nouvel utilisateur et lorsque l'utilisateur est forcé de changer le mot de passe, l'
affichage du journal 500 est similaire: Puisqu'il n'y a aucun article écrit dans la première fois, l'affichage du journal est similaire, pas le journal que j'ai rencontré.
The form contains the following error:
PG::NotNullViolation: ERROR: null value in column "id" violates not-null constraint DETAIL: Failing row contains (null, 164, t). : INSERT INTO "project_ci_cd_settings" ("project_id") VALUES (164) RETURNING "id"
Solution: vérifiez si la table correspondante a une valeur nulle et démarrez une nouvelle structure de table de comparaison gitlab
résoudre:
gitlabhq_production=> CREATE SEQUENCE user_preference_id_seq INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 106 OWNED BY user_preferences.id; 重新创建sequence
gitlabhq_production=> ALTER TABLE user_preferences ALTER COLUMN id SET DEFAULT NEXTVAL('user_preference_id_seq'::regclass); 恢复表结构修饰符
3. Lors de l'attribution à l'utilisateur lors de la création d'une fusion, 500
journaux gitlab après la soumission :
==> /var/log/gitlab/postgresql/current <==
2021-03-18_05:52:05.23424 ERROR: null value in column "id" violates not-null constraint
2021-03-18_05:52:05.23427 DETAIL: Failing row contains (null, 61, 4046).
2021-03-18_05:52:05.23427 STATEMENT: INSERT INTO "merge_request_assignees" ("user_id", "merge_request_id") VALUES (61, 4046) RETURNING "id"
résoudre:
gitlabhq_production=> CREATE SEQUENCE merge_request_assignees_id_seq INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 106 OWNED BY merge_request_assignees.id; 重新创建sequence
gitlabhq_production=> ALTER TABLE merge_request_assignees ALTER COLUMN id SET DEFAULT NEXTVAL('merge_request_assignees_id_seq'::regclass); 恢复表结构修饰符