gitlab移行および移行後500の問題

2997 ワード

gitlab移行


背景

  • の前にgitlabはアリクラウドに配備された.外部ネットワークが相対的に安全ではないため、内部ネットワーク
  • に移行することを考慮している.

    環境

  • gitlab-11.1.3 docker導入
  • インプリメンテーション

  • バックアップ
  • 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 .
  • 同じバージョンのgitlabをイントラネットマシンで起動する(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
    

    に質問


    1.ci/cd runnerページ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.新しいユーザーは、パスワードの変更を強制するタイムズ500 logに類似を表示します.最初の文章を書く時間がないため、ログは類似を表示し、私が出会ったログではありません.
    
    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"

    解決策:対応するテーブルにnull値があるかどうかを確認し、新しいgitlab比較テーブル構造を起動します.
    解決:
    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.mergeの作成時にユーザーに指定した場合、コミット後500 gitlabログ:
    ==> /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"
    

    解決:
    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);                          

    説明:gitlabを移行すると、データベース・シーケンスが失われ、シーケンスが再構築され、フィールド修飾子が復元されます。新しいgitlabと比較すると、多くのseqが失われる可能性があり、すべてを回復することをお勧めします。


    参照:https://gitlab.com/gitlab-org...