オブジェクト エクスプローラー

Visual Studio Code用 PostgreSQL 拡張機能のオブジェクト エクスプローラーでは、PostgreSQL サーバー、データベース、スキーマ、および個々のデータベース オブジェクトのツリー ビューが提供されます。 エディターを離れることなく、テーブル、ビュー、関数、その他のオブジェクトを参照したり、スキーマ間で検索したり、SQL スクリプトを生成したりできます。

Tip

オブジェクト のナビゲーション、検索、およびスクリプトの生成には、オブジェクト エクスプローラーを使用します。 テーブルリレーションシップの視覚的な図が必要な場合は、 スキーマ ビジュアライザーを開きます

オブジェクト エクスプローラーを開く

アクティビティ バーPostgreSQL アイコンを選択して PostgreSQL ビューを開きます。 Ctrl + Alt + D (Windows/Linux) または Cmd + Alt + D (macOS) を押すこともできます。

このビューには[ 接続 ]セクションが含まれており、折りたたみ可能なツリーにサーバーが表示されます。 接続されているサーバーには緑色のアイコンが表示されます。切断されたサーバーに赤いアイコンが表示されます。 接続が存在しない場合は、[ 接続の追加] ノードが表示され、開始に役立ちます。

ツリー階層

オブジェクト エクスプローラーでは、データベース オブジェクトが一貫した階層内に整理されます。

Server → Database → Schema → オブジェクト コレクション

既定では、オブジェクトはスキーマごとにグループ化されます。 各スキーマの下には、次のようなコレクション フォルダーがあります。

  • テーブル: テーブルを展開して、その列キーインデックス制約トリガーを表示します
  • ビュー
  • ストアド プロシージャ
  • 関数: スカラー値関数、テーブル値関数、集計関数が個別のフォルダーに含まれます
  • シーケンス
  • : ユーザー定義型とユーザー定義テーブル型

コレクション フォルダーの正確なセットは、データベースに存在するオブジェクトに依存し、バックエンド ツール サービスによって設定されます。

コレクション フォルダーを展開して、個々のオブジェクトを表示します。 テーブルの場合は、列、キー (プライマリ、外部、一意)、インデックス、制約、トリガーをさらに詳しく調えることができます。

Note

pgsql.objectExplorer.expandTimeout設定では、ノードを展開するときに拡張機能が待機する時間を制御します。 既定値は 45 秒です。 読み込みに時間がかかる大きなスキーマを使用する場合は、この値を大きくします。

スキーマによるグループ化

pgsql.objectExplorer.groupBySchema設定が有効になっている場合 (既定値)、データベース オブジェクトはスキーマ ノードの下に表示されます。 この動作を切り替えるには:

  1. コマンド パレットを開きます (Ctrl + Shift + P / Cmd + Shift + P)。
  2. [スキーマ別のグループ化を有効にする] または [スキーマ別のグループ化を無効にする] を実行します。

スキーマごとのグループ化を無効にすると、オブジェクト コレクション フォルダーは、個々のスキーマではなく、データベース ノードのすぐ下に表示されます。

サーバーの接続と管理

サーバー接続は、 接続 ツリーから直接管理します。 [ 接続 ] セクションの上部にあるツール バーと右クリック コンテキスト メニューには、次の操作が表示されます。

ツール バーのアクション

Button 命令 説明
+ 新しい接続の追加 接続ダイアログを開き、既存の PostgreSQL サーバーを追加します。
サーバー アイコン 新しいサーバーの作成 新しいAzure Database for PostgreSQLフレキシブル サーバーをデプロイしたり、Docker ベースのサーバーを作成したりできる作成ハブを開きます。
フォルダー アイコン サーバー グループの作成 接続を整理するための新しいサーバー グループを作成します。
フィルター アイコン 接続されているサーバーのみを表示します / 接続されたサーバーと切断されたサーバーを表示する ツリー内の切断されたサーバーの可視性を切り替えます。
検索アイコン オブジェクトの検索 検索パネルを開きます。

サーバー コンテキスト メニュー

サーバー ノードを右クリックして、次のコマンドにアクセスします。

  • 検索オブジェクト: このサーバーを対象範囲にした検索パネルが開きます。
  • 接続の編集: このサーバーの保存された設定を使用して接続ダイアログを再度開きます。
  • 切断: アクティブな接続を閉じます。 後で再接続できるように、サーバーは赤いアイコンでツリー内にとどまります。
  • 削除: 接続 ツリーからサーバー エントリを完全に削除します。
  • 更新: サーバーの子ノードを再読み込みします。 VS Code の外部でスキーマを変更した後に使用します。

Note

切断 は、接続されているサーバーでのみ表示されます。 削除 は、接続されているサーバーと切断されたサーバーの両方で使用できます。

データベース コンテキスト メニュー

アクセスするデータベース ノードを右クリックします。

  • 新しいクエリ: このデータベースに既に接続されているクエリ エディターが開きます。
  • PSQL を使用した接続: psqlを使用して、このデータベースに接続されている統合ターミナル セッションを開きます。 詳細については、 ターミナルで psql を使用するを 参照してください。
  • スキーマの視覚化: このデータベースの スキーマ ビジュアライザー が開きます。
  • 検索オブジェクト: このデータベースを対象範囲にした検索パネルが開きます。

スキーマ ノードを右クリックして 、[スキーマの視覚化 ] (そのスキーマのスコープ) と [オブジェクトの検索] にアクセスします。

サーバー グループ

サーバー グループを使用すると、接続を名前付きフォルダーに整理できます。 これは、さまざまな環境またはチーム間で多数のサーバーを操作する場合に便利です。

  1. [接続] ツールバーでフォルダー アイコン (サーバー グループの作成) を選択するか、コマンド パレットを開いて PGSQL: サーバー グループの作成を実行します。
  2. グループの名前、省略可能な説明、色を入力します。
  3. [OK] を選択.

このグループは、[ 接続] ツリーにフォルダーとして表示されます。 サーバー ノードをグループにドラッグして再構成できます。 グループを変更するには、グループを右クリックし、[ サーバー グループの編集] を選択します。 グループを削除するには、右クリックして [削除] を選択 します

サーバー グループを右クリックし、[ 新しい接続 の追加] または [ 新しいサーバーの作成] を使用してそのグループに接続を直接追加します。

オブジェクトの検索

大規模なデータベースで特定のオブジェクトを検索する必要がある場合は、ツリー ノードを手動で展開するのではなく、組み込みの検索を使用します。

[接続] ツールバーの検索アイコンを選択して、検索パネルを開きます。 サーバー、データベース、またはスキーマ ノードを右クリックし、[ 検索オブジェクト] を選択してスコープを事前設定することもできます。

検索パネルには、次のコントロールがあります。

コントロール 説明
接続の選択 検索対象のサーバー接続を選択します。 ドロップダウン リストには、接続状態 (接続済み / Disconnected) と、ホスト、ポート、ユーザーなどの詳細が表示されます。
データベースの選択 検索するデータベースを選択します。
すべてのスキーマ 特定のスキーマに結果を絞り込むか、すべての場所で検索する 場合は [すべてのスキーマ ] に設定します。
すべての型 オブジェクトの種類でフィルター処理します。 テーブル、ビュー、関数、ストアド プロシージャ、シーケンスなどの任意の組み合わせを選択します。
オブジェクトの検索... オブジェクト名と照合する部分文字列を入力します。 検索では大文字と小文字が区別されません。

[ 検索 ] を選択してクエリを実行します。 結果は、 オブジェクト名、および オブジェクト パス の列を持つグリッドに表示されます。 結果行を選択して、ツリー内のそのオブジェクトに直接移動します。 [接続] ツリーでは、必要なノードが自動的に展開されます。

データベース オブジェクトのスクリプト作成

データベース オブジェクトの SQL スクリプトは、 接続 ツリーから直接生成できます。 スクリプト可能なオブジェクトを右クリックして、スクリプト コマンドにアクセスします。

命令 使用可能な場所 生成された SQL
上位 1000 を選択する テーブル、ビュー SELECT 最初の 1,000 行を返すクエリ。
スクリプトとして作成 テーブル、ビュー、スキーマ、ストアド プロシージャ、関数、トリガー、インデックス、キー、ロール、型 完全な CREATE DDL ステートメント。
ドロップとしてスクリプトを作成する Script as Create と同じ DROP オブジェクトのステートメント。
Alter としてスクリプトを作成する ビュー、関数、ストアド プロシージャ ALTER オブジェクトのステートメント。
実行としてスクリプトを作成する ストアド プロシージャ CALL または SELECT 文を使用してルーチンを実行します。

生成された各スクリプトは、ソース オブジェクトと同じデータベースに接続された新しいクエリ エディター タブで開きます。 スクリプトをすぐに確認、編集、実行できます。

Tip

[上位 1000 ] を選択すると、テーブル データをプレビューする最速の方法になります。 テーブルを右クリックし、[ 上位 1000 を選択 ] を選択してクエリを開き、1 つの手順で実行します。

コピー名

[接続] ツリーでフォルダー以外のオブジェクトを右クリックし、[名前のコピー] を選択して、修飾名をクリップボードにコピーします。 ノードを選択し、Ctrl + C (Windows/Linux) または Cmd + C (macOS) を押すこともできます。

コピーした名前は、 [database].schema.[object] 角かっこ表記形式を使用し、SQL クエリに貼り付けることができます。

オブジェクト エクスプローラーからの新しいクエリ

データベース ノードを右クリックし、[ 新しいクエリ ] を選択して、そのデータベースに既に接続されているクエリ エディターを開きます。 エディターはサーバー接続を継承し、選択したデータベースを対象とするため、すぐにクエリの作成を開始できます。

ツリー ノードのフィルター処理

一部のコレクション フォルダーでは、表示するオブジェクトを絞り込むためのフィルター処理がサポートされています。 ノードがフィルター可能な場合は、ノードを右クリックし、[ フィルター] を選択してフィルター パネルを開きます。 オブジェクトのプロパティに対して ContainsStarts WithEquals などの条件を設定し、[ OK] を 選択して適用できます。

フィルター処理されたノードのラベルの後に (filtered) が表示されます。 フィルターを削除するには、ノードを右クリックし、フィルター パネルで [クリア ] を選択します。

ドラッグ アンド ドロップ

サーバー グループ間でサーバー ノードをドラッグして、接続を再構成できます。 データベース オブジェクト (テーブル、ビュー、関数、ストアド プロシージャ) を 接続 ツリーからクエリ エディターにドラッグして、スキーマ修飾名をテキストとして挿入することもできます。