Looker extension for VS Code は、ローカル ファーストの開発モデルを使用します。このモデルは、ローカル ファイル システム、Looker インスタンスの開発モード、リモート Git リポジトリの 3 つの関係を維持します。
このガイドでは、拡張機能がファイルを同期する方法と、ローカル Git オペレーションが Looker プロジェクトに与える影響について説明します。
同期メカニズム
この拡張機能は、ローカル IDE と Looker サーバー間のファイル コンテンツの同期を自動的に管理します。
ファイルを開く(read-on-open)
ローカル IDE で .lkml ファイルを開くと、拡張機能は Looker インスタンスの開発モードでチェックアウトされたブランチから、そのファイルの現在のバージョンを自動的に取得します。これにより、常に最新バージョンのコードで作業できます。
ファイルを保存する(保存時に書き込み)
ファイルをローカルに保存すると(Mac の場合は Command-S、Windows/Linux の場合は Ctrl+S)、拡張機能によってローカルの変更が Looker サーバーにすぐに push されます。これらの変更は、Development Mode でブラウザベースの Looker IDE に表示されます。
同期の競合を処理する
ブラウザベースの Looker IDE でファイルが編集されているときに、VS Code でもファイルが開いていると、競合が発生する可能性があります。
デフォルトでは、拡張機能は Looker サーバーのバージョンをローカルの VS Code バージョンで上書きします。
ただし、looker.askBeforeOverwritingRemote 設定を有効にしている場合、サーバーで変更されたファイルを保存しようとすると、VS Code に警告が表示されます。次のいずれかの対応をご検討ください。
- View Diff: 差分エディタを開き、ファイルのリモート バージョンとローカル バージョンの変更を比較します。このオプションを使用すると、変更を 1 行ずつ選択して表示し、マージして競合を解決し、マージされたローカルの変更を Looker サーバーに同期できます。
- Overwrite Remote: Looker サーバーのバージョンをローカルの VS Code バージョンで上書きします。
- ローカルを上書き: ローカル ファイルを Looker サーバーのバージョンで上書きします。
looker.askBeforeOverwritingRemote 設定はデフォルトで無効になっています。
ローカル Git オペレーション
この拡張機能はファイルの内容を同期しますが、Git リポジトリはローカル ターミナルまたはローカル IDE の [ソース管理] タブで標準の Git コマンドを使用して管理する必要があります。
ブランチを管理する
git checkout を使用してローカルでブランチを切り替えると、拡張機能が変更を検出し、Looker サーバーのセッションを一致するブランチに自動的に切り替えます。
Looker がファイル変更を同期する前に、VS Code 用 Looker 拡張機能は、ローカルの Git ブランチが Looker 開発モードのブランチと一致することを確認します。ブランチが異なる場合は同期が自動的に一時停止され、ブランチ間の上書きが防止されます。不一致が発生すると、リモートの Looker ワークスペースを切り替えるか、ブランチをローカルでチェックアウトするかを選択できるインタラクティブなプロンプトが表示されます。同期を安全に再開するために、調整時にキャッシュに保存されたファイル ハッシュが自動的に無効になります。
Looker の Git の状態
ファイルへの変更を保存すると、その変更は Looker インスタンスに同期され、ブラウザベースの Looker IDE で commit されていない変更として表示されます。ローカル環境で Git を使用してこれらの変更を commit しても、リモート リポジトリに push するまで、Looker IDE では commit されていないものとして表示されます。
git push を使用すると、Looker インスタンスはコミットされた変更をリモート リポジトリから取得します。Looker インスタンスがリモートから pull すると、commit して push した変更は Looker IDE で commit されていないものとして表示されなくなります。ローカルに保存されているが、まだコミットとプッシュが行われていないファイルのみが、未コミットとして表示されます。
Validate LookML
拡張機能は、変更を保存するたびに Looker LookML バリデータを自動的に実行します。Validator によって返された構文エラーとモデルエラーは、ローカル IDE のファイル内にインラインで表示されます。必要に応じて、[Looker: Validate LookML] コマンド パレット コマンドを使用して、ファイルを保存せずに LookML バリデータを手動で実行することもできます。