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

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

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

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

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

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

データベースで特定のイントロスペクションタイプがサポートされていない場合、PhpStorm は完全なイントロスペクションを実行します。以下のデータベースでは、特定のイントロスペクションタイプとイントロスペクションレベルがサポートされています。
データベース | 増分イントロスペクション | フラグメントイントロスペクション | イントロスペクションレベル |
|---|---|---|---|
はい | はい | はい | |
はい | はい | - | |
はい | - | - | |
はい | はい | はい | |
はい | はい | はい | |
はい | はい | はい | |
はい | はい | はい | |
はい | はい | はい |
関連ページ:
クエリを実行する
データベースツールと SQL プラグインを有効にするこの機能は、PhpStorm にデフォルトでバンドルされ有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。クエリは、ショートカット、ツールバーボタン、コンテキストメニュー...
イントロスペクションレベル
データベースにオブジェクト(テーブル、スキーマ、データベースなど)が多数存在する場合、イントロスペクションに長時間かかることがあります。一部のデータベースではシステムカタログの処理速度が比較的遅く、ユーザーが高速カタログにアクセスする権限を持たない場合、イントロスペクションはさらに遅くなります。通常、日常業務やコーディング支援では、すべてのオブジェクトのソースを読み込む必要はありません。多くの場合、データベース名さえあれば、適切なコード補完とナビゲーションを実現できます。PhpStorm はイン...
データベースツールウィンドウ
データベースツールと SQL プラグインを有効にするこの機能は、PhpStorm にデフォルトでバンドルされ有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。概要:データベースツールウィンドウでは、データベースと DDL...
データソースおよびドライバーダイアログ
データベースツールと SQL プラグインを有効にするこの機能は、PhpStorm にデフォルトでバンドルされ有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。データソースおよびドライバーダイアログにアクセスするには、次のい...
Amazon Redshift
データベースツールと SQL プラグインを有効にするこの機能は、PhpStorm にデフォルトでバンドルされ有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。公式ドキュメント Amazon Redshift の詳細については...