メタデータとイントロスペクション
メタデータには、データベースオブジェクト、その構造、データベースオブジェクトのソースコードなどに関する情報が含まれます。 WebStorm はこの情報を使用して、 データベース ツールウィンドウにオブジェクトを表示し、DDL を表示し、補完時の候補を提案し、他のコーディング支援、ナビゲーション、および検索機能に利用します。
WebStorm には、データベースのメタデータを取得する方法として、minicatalogs と イントロスペクションがあります。
- ミニカタログ
システムスキーマのミニカタログを使用すると、システムスキーマのメタデータが事前にイントロスペクトされ、IDE 自体に提供されます。 これにより、システムスキーマをイントロスペクトする前に、データベースに接続することなく、システムメタデータを使用するスクリプトを作成できます。
イントロスペクション
イントロスペクションとは、データベースのメタデータを読み込むプロセスです。 イントロスペクションを実行すると、データソース内の構造情報がインスペクションされ、テーブル、列、ルーチン、その他のデータベースオブジェクトとその属性が検出されます。
イントロスペクションは、データ構造とカタログを持つデータベースでのみサポートされます。
デフォルトでは、 データベース ツールウィンドウに表示するように選択されたスキーマとデータベースのみがイントロスペクトされます。
データベース ツールウィンドウで選択するか、 データソースおよびドライバー ダイアログ (Shift+Enter) ダイアログでデータソースプロパティを編集することで、どのスキーマとデータベースをイントロスペクトして表示するかを選択できます。
イントロスペクションのスキーマとデータベースを選択する
データベース ツールウィンドウの場合:
データベース ツールウィンドウを開くには、メインメニューから を選択します。 あるいは、 ⌘ 1 を押してください。
データベース ツールウィンドウで、データソース、データベース、スキーマ名の横にある N/M ボタンをクリックします。

スキーマ選択ポップアップウィンドウで、データベースまたはスキーマを選択し、 Enter を押します。
データソースおよびドライバー ダイアログの場合:
ダイアログを開くには、 データベース ツールウィンドウでデータソースを右クリックし、
プロパティ を選択します。 または、ツールバーの
データソースプロパティ アイコンをクリックします。
データソースおよびドライバー ダイアログの スキーマ タブで、データベースまたはスキーマを選択します。

オブジェクトフィルター フィールドは、 データベース ツールウィンドウに表示されるオブジェクトのみを定義し、イントロスペクションスコープには影響しないことに注意してください。
変更を適用してダイアログを閉じます。
必要なデータベースとスキーマがイントロスペクトされると、IDE はスクリプト内のデータベースオブジェクトを適切なコンテキストに解決できるようになります。 以下の例は、イントロスペクトされたスキーマとイントロスペクトされていないスキーマのデータベースオブジェクトの解決方法を示しています。

イントロスペクトされていない
MySQLデータソース。PostgreSQLデータソースのうち、唯一イントロスペクトされたguestデータベース。 このデータベースには 4 つのスキーマが含まれており、publicスキーマのみがイントロスペクトされています。クエリコンソール でのデータベースオブジェクトの解決:イントロスペクトされた
guestスキーマの場合は成功し、イントロスペクトされていないtestsスキーマの場合は失敗します。
データソースごとに、データベースオブジェクトのソースコードがロードされるスキーマのカテゴリを選択することもできます。
異なるスキーマのデータベースオブジェクトのソースをロードする
データベースオブジェクトのソースがロードされるスキーマを選択するには、 データソースおよびドライバー ダイアログ (Shift+Enter) を開き、データソースを選択します。
オプション タブで、 ソースのロード 設定に移動し、スキーマのカテゴリを選択します。
変更を適用し、ダイアログを閉じます。

すべてのオブジェクトが処理されている場合、データベースユーザーはイントロスペクションに長い時間がかかることがありますが、日常業務やコーディング支援では通常、イントロスペクションは必要ありません。 イントロスペクトされるオブジェクトの数を減らすため、WebStorm には追加の イントロスペクションタイプと、サポートされている一部のデータベース向けに イントロスペクションレベルが実装されています。
イントロスペクションの種類
イントロスペクションの種類は、イントロスペクション中にリフレッシュされるデータベースオブジェクトを定義します。 一部のデータベースでは、このイントロスペクションの範囲を特定のオブジェクトに絞り込むことができます。 WebStorm では、データベースに応じて、 フルイントロスペクション、 フラグメントイントロスペクション、 増分イントロスペクションのイントロスペクションタイプが利用できます。
- フルイントロスペクション
データベース ツールウィンドウ (スキーマセレクター) または データソースおよびドライバー ダイアログ (スキーマ タブ) でイントロスペクション用に選択されたスキーマとデータベースがリフレッシュされます。
- 増分イントロスペクション
前回のイントロスペクション実行後にデータベース内で変更されたデータベースオブジェクトのみがリフレッシュされます。
- フラグメントイントロスペクション
リフレッシュ アクションを呼び出すと、 データベース ツールウィンドウで選択されたデータベースオブジェクトのみがリフレッシュされます。

クエリコンソール でステートメントを実行すると、 スマートリフレッシュメカニズムが適用されます。 WebStorm は、このステートメントで変更される可能性のあるオブジェクトを分析し、その特定のオブジェクトセットのみをリフレッシュします。
サポートされている一部のデータベースでは、 イントロスペクションレベルごとにイントロスペクションを実行できます。
- レベル別イントロスペクション
イントロスペクションレベルは、データベースオブジェクトについて取得される詳細の量を定義します。
レベル 1: データベースオブジェクト名のみがロードされます。
レベル 2: データベースオブジェクトのソースコードを除くすべてがロードされます。
レベル 3: すべてがロードされました。
イントロスペクションレベルの詳細については、 イントロスペクションレベル トピックを参照してください。

データベースで特定のイントロスペクションタイプがサポートされていない場合、WebStorm はフルイントロスペクションを実行します。 以下のデータベースでは、特定のイントロスペクションタイプとイントロスペクションレベルがサポートされています。
データベース | 増分イントロスペクション | フラグメントイントロスペクション | イントロスペクションレベル |
|---|---|---|---|
はい | はい | はい | |
はい | はい | - | |
はい | - | - | |
はい | はい | はい | |
はい | はい | はい | |
はい | はい | はい | |
はい | はい | はい | |
はい | はい | はい |