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設定が有効になっている場合 (既定値)、データベース オブジェクトはスキーマ ノードの下に表示されます。 この動作を切り替えるには:
- コマンド パレットを開きます (Ctrl + Shift + P / Cmd + Shift + P)。
- [スキーマ別のグループ化を有効にする] または [スキーマ別のグループ化を無効にする] を実行します。
スキーマごとのグループ化を無効にすると、オブジェクト コレクション フォルダーは、個々のスキーマではなく、データベース ノードのすぐ下に表示されます。
サーバーの接続と管理
サーバー接続は、 接続 ツリーから直接管理します。 [ 接続 ] セクションの上部にあるツール バーと右クリック コンテキスト メニューには、次の操作が表示されます。
ツール バーのアクション
| Button | 命令 | 説明 |
|---|---|---|
| + | 新しい接続の追加 | 接続ダイアログを開き、既存の PostgreSQL サーバーを追加します。 |
| サーバー アイコン | 新しいサーバーの作成 | 新しいAzure Database for PostgreSQLフレキシブル サーバーをデプロイしたり、Docker ベースのサーバーを作成したりできる作成ハブを開きます。 |
| フォルダー アイコン | サーバー グループの作成 | 接続を整理するための新しいサーバー グループを作成します。 |
| フィルター アイコン | 接続されているサーバーのみを表示します / 接続されたサーバーと切断されたサーバーを表示する | ツリー内の切断されたサーバーの可視性を切り替えます。 |
| 検索アイコン | オブジェクトの検索 | 検索パネルを開きます。 |
サーバー コンテキスト メニュー
サーバー ノードを右クリックして、次のコマンドにアクセスします。
- 検索オブジェクト: このサーバーを対象範囲にした検索パネルが開きます。
- 接続の編集: このサーバーの保存された設定を使用して接続ダイアログを再度開きます。
- 切断: アクティブな接続を閉じます。 後で再接続できるように、サーバーは赤いアイコンでツリー内にとどまります。
- 削除: 接続 ツリーからサーバー エントリを完全に削除します。
- 更新: サーバーの子ノードを再読み込みします。 VS Code の外部でスキーマを変更した後に使用します。
Note
切断 は、接続されているサーバーでのみ表示されます。 削除 は、接続されているサーバーと切断されたサーバーの両方で使用できます。
データベース コンテキスト メニュー
アクセスするデータベース ノードを右クリックします。
- 新しいクエリ: このデータベースに既に接続されているクエリ エディターが開きます。
-
PSQL を使用した接続:
psqlを使用して、このデータベースに接続されている統合ターミナル セッションを開きます。 詳細については、 ターミナルで psql を使用するを 参照してください。 - スキーマの視覚化: このデータベースの スキーマ ビジュアライザー が開きます。
- 検索オブジェクト: このデータベースを対象範囲にした検索パネルが開きます。
スキーマ ノードを右クリックして 、[スキーマの視覚化 ] (そのスキーマのスコープ) と [オブジェクトの検索] にアクセスします。
サーバー グループ
サーバー グループを使用すると、接続を名前付きフォルダーに整理できます。 これは、さまざまな環境またはチーム間で多数のサーバーを操作する場合に便利です。
- [接続] ツールバーでフォルダー アイコン (サーバー グループの作成) を選択するか、コマンド パレットを開いて PGSQL: サーバー グループの作成を実行します。
- グループの名前、省略可能な説明、色を入力します。
- [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 クエリに貼り付けることができます。
オブジェクト エクスプローラーからの新しいクエリ
データベース ノードを右クリックし、[ 新しいクエリ ] を選択して、そのデータベースに既に接続されているクエリ エディターを開きます。 エディターはサーバー接続を継承し、選択したデータベースを対象とするため、すぐにクエリの作成を開始できます。
ツリー ノードのフィルター処理
一部のコレクション フォルダーでは、表示するオブジェクトを絞り込むためのフィルター処理がサポートされています。 ノードがフィルター可能な場合は、ノードを右クリックし、[ フィルター] を選択してフィルター パネルを開きます。 オブジェクトのプロパティに対して Contains、 Starts With、 Equals などの条件を設定し、[ OK] を 選択して適用できます。
フィルター処理されたノードのラベルの後に (filtered) が表示されます。 フィルターを削除するには、ノードを右クリックし、フィルター パネルで [クリア ] を選択します。
ドラッグ アンド ドロップ
サーバー グループ間でサーバー ノードをドラッグして、接続を再構成できます。 データベース オブジェクト (テーブル、ビュー、関数、ストアド プロシージャ) を 接続 ツリーからクエリ エディターにドラッグして、スキーマ修飾名をテキストとして挿入することもできます。