正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

バックグラウンド移行のトラブルシューティング

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

バッチ処理されたバックグラウンド移行が完了していないため、データベース移行に失敗する

GitLabバージョン14.2以降にアップデートすると、次のようなメッセージでデータベース移行が失敗する場合があります:

StandardError: An error has occurred, all later migrations canceled:

Expected batched background migration for the given configuration to be marked as 'finished', but it is 'active':
  {:job_class_name=>"CopyColumnUsingBackgroundMigrationJob",
   :table_name=>"push_event_payloads",
   :column_name=>"event_id",
   :job_arguments=>[["event_id"],
   ["event_id_convert_to_bigint"]]
  }

このエラーを解決するには:

ロールバックして、必要なアップグレードパスに従ってください

ロールバックして、必要なアップグレードパスに従うには、次の手順を実行します:

  1. 以前にインストールしたバージョンをロールバックして復元する
  2. 14.2以降にアップデートする前に、14.0.5または14.1にアップデートしてください。
  3. バッチ処理されたバックグラウンド移行のステータスを確認し、再度アップグレードを試みる前に、すべて完了とマークされていることを確認してください。アクティブとマークされたものが残っている場合は、手動で完了させてください

アップグレードされたバージョンで移行をロールフォワードして完了します

ロールフォワードのプロセスは、ダウンタイムが必要かどうかによって異なります。

ダウンタイムを伴うデプロイの場合

すべてのバッチ処理されたバックグラウンド移行を実行すると、GitLabインスタンスのサイズによっては、かなりの時間がかかる場合があります。

  1. データベース内のバッチ処理されたバックグラウンド移行のステータスを確認し、ステータスクエリが行を返さなくなるまで、適切な引数を指定して手動で実行します

  2. それらすべてのステータスが完了とマークされたら、インストールの移行を再度実行します。

  3. GitLabアップグレードからデータベース移行を完了させます:

    sudo gitlab-rake db:migrate
  4. 再構成を実行します:

    sudo gitlab-ctl reconfigure
  5. インストールのアップグレードを完了させます。

ダウンタイムなしのデプロイの場合

失敗している移行はデプロイ後の移行であるため、アップグレードされたバージョンの実行中のインスタンスにとどまり、バッチ処理されたバックグラウンド移行が完了するのを待つことができます。

  1. エラーメッセージからバッチ処理されたバックグラウンド移行のステータスを確認し、完了としてリストされていることを確認します。移行がまだアクティブな場合は、次のいずれかを行います:
  2. インストールの移行を再度実行して、残りのデプロイ後の移行を完了させます。

高度な検索移行がスタックしている

GitLab 15.0では、DeleteOrphanedCommitという名前の高度な検索移行は、アップグレード全体で保留状態のままになる可能性があります。このイシューはGitLab 15.1で修正されています

高度な検索でGitLab 15.0を使用しているGitLab Self-Managedのお客様は、パフォーマンスの低下が発生します。移行をクリーンアップするには、15.1以降にアップグレードしてください。

保留中の問題でスタックしている他の高度な検索移行については、停止した移行を再試行してください。

高度な検索の保留中の移行がすべて完了する前にGitLabをアップグレードすると、新しいバージョンで削除された保留中の移行は、実行または再試行されません。この場合、インデックスをゼロから再作成する必要があります。

エラー: Elasticsearch version not compatible(コンポーネントビルドエラー: specは有効なJSONスキーマである必要があります)

この問題を解決するするには、お使いのElasticsearchまたはOpenSearchのバージョンがお使いのGitLabのバージョンと互換性があることを確認してください。