migration gitlab et 500 problèmes après la migration

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

  1. 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 .
  2. 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);                         恢复表结构修饰符

Remarque: Après la migration de gitlab, il y aura un problème de perte de séquence de base de données. Reconstruisez la séquence et restaurez les modificateurs de champ. Par rapport au nouveau gitlab, vous constaterez que de nombreux seqs peuvent être perdus, et il est recommandé de tous les restaurer.

Référence: https://gitlab.com/gitlab-org/gitlab/-/issues/26020

Je suppose que tu aimes

Origine blog.51cto.com/674564591/2674660
conseillé
Classement