LookML プロジェクトでの Git の問題の診断と修復

Looker プロジェクトは、安定した Git 構成(リモート リポジトリ接続、有効なデプロイキー、完全なリポジトリ構造、正しいファイル システム権限など)に依存しています。Git の問題が発生した場合、デベロッパーと管理者は [診断と修復] ツールを使用して、リポジトリの健全性をテストし、根本原因を特定して、自動修復を実行できます。

[診断と修復] ツールは、個人用開発環境または共有本番環境の 8 つの診断テストチェックで LookML プロジェクト リポジトリを評価します。問題が見つかった場合、Looker は、専用の復元ブランチで未コミットの変更を保護しながら、外科的な修復(古いロックファイルの削除、ファイル権限の修正、破損したオブジェクト インデックスの修復など)を自動的に実行したり、破損したリポジトリを再構築したりできます。

前提条件と権限

Git の [Diagnose & Repair] ツールを使用するには、次の権限要件を満たす必要があります。

  • 開発環境: プロジェクト内の少なくとも 1 つのモデルに対する develop 権限が必要です。
  • 本番環境: プロジェクト内の少なくとも 1 つのモデルに対する deploy 権限が必要です。

Git の診断を実行する

LookML プロジェクトを診断する手順は次のとおりです。

  1. Development Mode を有効にします。
  2. ナビゲーション パネルで [開発] を選択して、[開発] パネルを開きます。
  3. [開発] パネルで [プロジェクト] を選択して、[LookML プロジェクト] ページを表示します。
  4. 診断するプロジェクトを開きます。
  5. Looker IDE アイコン メニューから [設定] アイコンを選択します。
  6. [Git Diagnose and Repair] セクションで、[Diagnose & Repair] をクリックします。
  7. [診断と修復] ダイアログで、テストする環境を選択します。

    [診断と修復] ダイアログで [開発環境] が選択されている。

    • 開発: Git リポジトリの個人用開発者コピーをテストします。
    • 本番環境: Git リポジトリの本番環境コピーをテストします。
  8. [診断] をクリックします。

Looker は診断テストスイートを開始し、ダイアログに各テストチェックの進行状況をリアルタイムで表示します。

実行されたテストとテスト結果を示す Git 診断レポート。

診断結果について

診断テストスイートの実行中、各チェックでは次のいずれかのステータスが報告されます。

ステータス バッジ 意味 対応が必要です
検出されませんでした 診断チェックに合格し、問題は見つかりませんでした。 対応は不要です。
検出 リポジトリまたは接続で問題または不整合が検出されました。 自動修復が利用可能な場合は実行するか、手動解決の手順に沿って操作します。
Repaired(修理済み) 自動修復プロセスによって問題が解決されました。 これ以上の対応は必要ありません。
失敗 自動修復を試みても問題を解決できなかった場合、またはチェックに手動での操作が必要な場合。 問題の詳細を確認し、手動の修復手順に沿って対応します。

自動修復の実行

診断チェックで [検出] ステータスが返され、自動修復がサポートされている場合は、ダイアログから直接修復を開始できます。

  1. [診断と修復] ダイアログで、[修復を開始] ボタンをクリックします。
  2. Looker は、修復可能なすべての問題に自動修復を適用します。
  3. 修復プロセスが完了すると、ステータス バッジが、解決済みのチェックの場合は [修復済み] に、手動による介入が必要な場合は [失敗] に更新されます。

診断チェックと修理に関するリファレンス

診断テストスイートは、8 つのカテゴリの Git の問題を評価します。次の表に、各チェック、診断、実行された修復アクションを示します。

診断チェック 説明 修理の種類 修復措置
Git の設定 プロジェクトにリポジトリの初期化に必要な前提条件(構成済みのリモート Git オリジン URL とアクティブなデータベース構成レコード)があることを確認します。 手動 必要な値が不足している場合は、プロジェクト設定([設定] > [構成] > [Git の構成])で Git の初期構成を完了します。詳細については、Git の設定に関する問題の解決セクションをご覧ください。
Git 接続テスト リモートのオリジン リポジトリに対して Looker の標準 Git 接続テストスイートを実行し、認証情報、ネットワークの到達可能性、リモート アクセス権限を確認します。 手動 接続エラーは、外部要因(SSH デプロイキーの有効期限切れ、OAuth または個人アクセス トークンの取り消し、ファイアウォールの制限、プロバイダの停止など)が原因で発生します。認証情報またはネットワークの問題を Git プロバイダに直接お問い合わせください。詳細については、Git 接続テストの問題を解決するをご覧ください。
ファイル システム アクセス Looker がプロジェクト リポジトリ内のディレクトリ リストやファイル名を読み取れないようにするファイル システムの I/O エラーまたはストレージ エラーを検出します。 自動化 プロジェクト リポジトリのクリーンなコピーを最初から再構築します。古いディレクトリを安全なバックアップにアーカイブし、未コミットの作業をリモート復元ブランチに保存します。
リポジトリの機能状態 内部の .git 構造が存在し、破損していないかどうかを確認し、Git がディレクトリを機能する作業ツリーとして認識していることを確認します。 自動化 プロジェクト リポジトリをゼロから再構築し、正常な Git ディレクトリ構造を復元しながら、以前のコンテンツをアーカイブしてデータ損失を防ぎます。
Git ロックファイル 中断または終了した Git オペレーションによって残された古い .lock ファイル(インデックスや構成ロックなど)をスキャンし、後続の Git コマンドをブロックします。 自動化 古いロックファイルを安全に即座に削除し、リポジトリの履歴や作業ファイルを変更することなく Git オペレーションのブロックを解除します。
オブジェクトの権限 プロジェクトのファイルとディレクトリをスキャンして、推奨されるセキュリティと運用標準から逸脱したファイル システム権限を検出します(たとえば、ディレクトリとスクリプトに読み取りと実行のアクセス権があり、標準ファイルは実行可能でないことを確認します)。 自動化 プロジェクト全体でファイルとディレクトリの権限を自動的に正規化し、ファイルの内容を変更することなく安全な標準権限を復元します。
Git 構成設定 リポジトリの内部 Git 構成が Looker の必要なデフォルトと一致するかどうかを確認します(特に、ファイル モードの追跡 core.filemode が無効になっていることを確認し、ファイル システム間の権限の違いによって誤った変更が生成されないようにします)。 自動化 Looker のデフォルトに合わせてリポジトリ構成を更新し、更新された構成を保存します。
リポジトリ整合性 FSCK Git ファイル システム チェック(git fsck)を実行して、リポジトリの内部オブジェクト データベースに構造的な破損(壊れたインデックス ファイル、無効なコミット署名、無効なオブジェクト ポインタ、破損したオブジェクト、壊れた参照など)がないか検査します。 自動化 初期修復: インデックスを再構築し、古い参照ログを削除し、破損した参照を削除し、git fetch --refetch を実行して欠落しているオブジェクトを取得します。
フォールバック再構築: 初期修復でエラーをすべて解決できない場合、リポジトリを安全に再構築し、未コミットの作業をリモート復元ブランチに保持します。

手動の Git の問題を解決する

Git の設定または Git 接続テストのチェックで問題が検出された場合、問題はローカル リポジトリの外部で発生しているため、自動修復は利用できません。マニュアルに関する問題を解決するには、次のガイドラインに沿って対応してください。

  • Git のセットアップに関する問題の解決:

    1. Looker IDE でプロジェクトを開きます。
    2. アイコン メニューから [設定] アイコンを選択します。
    3. [構成] タブで、[Git 接続のリセット] または [Git の構成] を選択して、リポジトリの設定を完了します。詳細な手順については、Git 接続の設定とテストをご覧ください。

  • Git 接続テストの問題を解決する:

    • SSH デプロイキー: Looker のデプロイキーが Git ホスティング プロバイダに登録されている公開鍵と一致することを確認し、キーの書き込みアクセスが有効になっていることを確認します。必要に応じて、プロジェクト設定で新しいデプロイキーを生成し、Git プロバイダを更新します。
    • HTTPS 認証情報と個人用アクセス トークン: 個人用アクセス トークンまたはサービス アカウントのパスワードの有効期限が切れているか、取り消されているかを確認します。Git プロバイダで新しいトークンを生成し、Looker で認証情報を更新します。
    • IP 許可リストとファイアウォール: Git ホスティング プロバイダが Looker インスタンスの IP アドレスからのインバウンド トラフィックを許可していることを確認します。