Visual Studio Code用の PostgreSQL 拡張機能により、PostgreSQL データベースの開発と管理が効率化されます。 このガイドでは、PostgreSQL データベースに接続し、Visual Studio Code内でクエリを実行する手順について説明します。
接続しているかどうかにかかわらず、同じワークフローが適用されます。
- ローカル PostgreSQL のインストール
- Azure HorizonDB クラスター。
Prerequisites
開始する前に、適切なツールとリソースがダウンロードおよびインストールされていることを確認します。
- コンピューターにインストールされている Visual Studio Code。
- ローカルにインストールされた PostgreSQL データベース、または Azure HorizonDB クラスターの作成 でホストされている PostgreSQL データベース。
- Visual Studio Code にインストールされている PostgreSQL 拡張機能。
- GitHub Copilot拡張機能。
- GitHub Copilot Chat 拡張機能 がインストールされました。
PostgreSQL 拡張機能をインストールする
PostgreSQL 拡張機能をインストールするには:
- Visual Studio Code開き、アクティビティ バーの Extensions アイコンを選択するか、View: Extensions コマンドを使用して拡張機能ビューに移動します。
- Extensions Marketplace で PostgreSQL を検索します。
- Microsoft によって作成された PostgreSQL 拡張機能を選択し、[ インストール] を選択します。
インストール後、Visual Studio Codeサイドバーに PostgreSQL 拡張機能アイコンが表示されます。
PostgreSQL への接続を追加する
ローカルでもリモート サーバーでも、PostgreSQL データベースへの接続は、データの管理と操作の基本的な手順です。 このプロセスでは、クライアント アプリケーションとデータベースの間にセキュリティで保護されたリンクを確立するために必要な接続の詳細 (サーバー アドレス、ポート、認証資格情報など) を指定する必要があります。
- サイドバーの象アイコンを選択して PostgreSQL 拡張機能ページを開きます。
- [ 接続の追加] ボタンを選択します。
- 接続の詳細を手動で入力するか、接続文字列を貼り付けます。
- Azure を使用している場合は、Azure アカウントにサインインし、データベース インスタンスを参照します。 サブスクリプション、リソース グループ、サーバー/クラスター、およびデータベース名でフィルター処理します。 Azureアクセス権を持つサブスクリプション内の HorizonDB クラスターが一覧表示されます。
接続文字列の形式
Azure HorizonDB クラスターは、two エンドポイントを公開します。 ワークロードに一致するものを選択します。
- 読み取り/書き込みエンドポイント - 読み取 りと書き込みの両方を受け入れるプライマリに接続します。 このエンドポイントは、最新のコミット済みデータを確認する必要があるアプリケーションの書き込み、スキーマの変更、読み取りに使用します。
- リーダー エンドポイント - クラスター内のすべての読み取り可能な HA レプリカ間で接続を自動的に負荷分散します。 このエンドポイントは、読み取りスケールアウト、レポート、分析のワークロードに使用します。 現在、最大 4 つの読み取り可能な HA レプリカがサポートされています (8 個まで増加)。各レプリカのサイズはプライマリと同じです。
どちらのエンドポイント ホスト名も、クラスター Overview ページと、Azure ポータルの Replicas ページに表示されます。 接続文字列形式は標準の libpq 形式です。
# Read/write endpoint (primary)
psql "host=<cluster-name>.<region>.horizondb.azure.com port=5432 dbname=<database> user=<user> sslmode=require"
# Reader endpoint (load-balanced HA replicas)
psql "host=<cluster-name>-reader.<region>.horizondb.azure.com port=5432 dbname=<database> user=<user> sslmode=require"
一般的なパターンは、読み取り/書き込みエンドポイント用とリーダー エンドポイント用の 2 つのプロファイルを接続マネージャーに保存し、タスクに基づいて切り替える方法です。
Authentication
拡張機能では、次の 2 つの認証方法がサポートされています。
- ユーザー名/パスワード - データベースの資格情報を接続フィールドに直接入力します。
接続をテストして保存する
- [ 接続のテスト ] を選択して、接続の詳細を確認します。
- テストが成功すると、テスト ボックスにチェックマークが表示されます。
- [接続] を選択して接続を確立します。
- 接続が自動的に保存され、[接続] ウィンドウに表示されます。
クラウドでホストされているデータベースへの接続時にテストが失敗した場合は、クラスターのファイアウォール規則 (HorizonDB) によってクライアント IP アドレスが許可されていることを確認します。 現在、どちらのサービスも IP 許可リストを使用したパブリック アクセスをサポートしています。HorizonDB でのプライベート エンドポイントのサポートはロードマップ上にあります。
データベース オブジェクトを探索する
オブジェクト エクスプローラーには、データベース オブジェクトの階層ビューが用意されています。
- データベース項目を展開して、スキーマ、テーブル、ビュー、関数、およびストアド プロシージャを表示します。
- データベースを右クリックすると、次のオプションが表示されます。
- 新しいクエリを起動する
-
このデータベースとのチャット (
@pgsqlチャット エクスペリエンスが開始されます) -
PSQL と接続 して
psqlターミナル接続を起動する
- テーブルを右クリックし、[ 上位 1000 を選択 ] を選択してデータを表示します。 クエリ エディターでクエリが開き、[結果ビューアー] タブに結果が表示されます。
Azure HorizonDB 接続では、次の機能を使用して、クラスターで使用可能な許可リストの拡張機能を一覧表示することもできます。
SELECT * FROM pg_available_extensions ORDER BY name;
データベースにインストールする一般的な HorizonDB 拡張機能には、 vector、 pg_diskann、 azure_ai、 ageが含まれます。
CREATE EXTENSION IF NOT EXISTS azure_ai;
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_diskann;
CREATE EXTENSION IF NOT EXISTS age;
クエリの実行
クエリ エディターを使用して、SQL クエリの下書きと実行を行います。
- コンテキスト対応の IntelliSense を利用して、SQL キーワードとオブジェクト名をオートコンプリートします。
- 構文の強調表示とオートフォーマットを使用して、読みやすさと精度を向上させます。
- [クエリ履歴] ペインを使用して、以前に実行したクエリにアクセスします。
HorizonDB での読み取りと書き込みのルーティング
読み取り/書き込みエンドポイントとリーダー エンドポイントの両方のプロファイルがある場合は、クエリを実行する前に、クエリ エディターの接続ピッカーで適切な接続を選択します。 書き込みと DDL は、読み取り/書き込みエンドポイントに対して実行する必要があります。リーダー エンドポイントは読み取り専用クエリを受け入れ、HA レプリカ間でそれらを負荷分散します。
クエリ結果を確認する
結果ビューアーには、クエリ結果を操作するための高度な機能が用意されています。
- 結果を CSV、JSON、または Excel 形式にエクスポートして、詳細な分析を行います。
- 検索、フィルター、並べ替えのオプションを使用して、データを絞り込みます。
- 永続的なデータ ビューは、タブ間を切り替えながらコンテキストを維持します。
GitHub Copilot を使用して高度な支援を受ける
GitHub Copilot 統合では、AI を利用したコード提案、クエリ最適化のヒント、対話型データベース 支援を提供することで、PostgreSQL 開発エクスペリエンスが強化されます。 この機能は、ワークフローの合理化、開発時間の短縮、データベース操作に関する深い分析情報の取得に役立ちます。
GitHub Copilot と Copilot Chat 拡張機能がインストールされていることを確認します。 GitHub アカウントにサインインし、拡張機能の設定で @pgsql Copilot Chat エージェントを有効にします。
対話型データベース プロンプト
データベースを右クリックし、[ このデータベースとチャット ] を選択して Copilot と対話します。
詳細な分析情報と提案を受け取るために、次の例のようなプロンプトを記述します。
@pgsql tell me about the tables in the HR schema
Azure HorizonDB クラスターに接続すると、Copilotはライブ接続コンテキスト (インストールされている拡張機能を含む) を取得するため、プロンプトでは、pgvector、pg_diskann 高度なフィルター処理、azure_ai AI 関数などの HorizonDB 機能を利用できます。
詳細については、「
Visual Studio Code を使用して接続する
postgreSQL 拡張機能 for Visual Studio Code の Add Connection オプションを使用すると、Azure HorizonDB クラスターへの接続が簡略化されます。 この機能は、必要な接続の詳細を案内することで、セットアップを効率化します。
[ 接続の追加] ボタンを使用して、HorizonDB クラスターへの新しい接続を作成します。 読み取り/書き込みエンドポイントまたはリーダー エンドポイントとの接続を事前入力することを選択できます。
要件を確認する
- サイド ウィンドウで、適切なチェック ボックスをオンにして、すべての前提条件 (Visual Studio Codeと PostgreSQL 拡張機能) が満たされていることを確認します。
- 必要に応じて、サイド ウィンドウのリンクを使用して Visual Studio Code と拡張機能をダウンロードします。
- 必要に応じて、既定のデータベース名、認証方法、接続プールなどの接続パラメーターを入力します。
Visual Studio Code で開く
- サイド ウィンドウ で [Visual Studio Code で開く ] ボタンを選択します。
- Visual Studio Code と拡張機能が開くのに 40 秒以上かかる場合は、 サイド ウィンドウに [Visual Studio Code での開き直し ] ボタンが表示されます。
Visual Studio Code を起動します
- Visual Studio Code がインストールされて実行されている場合、PostgreSQL 拡張機能の接続ダイアログ ボックスが自動的に起動します。
- Visual Studio Code がインストールされていても開かない場合は、約 40 秒以内に起動し、その後に接続ダイアログ ボックスが表示されます。
認証情報の提供
優先する認証方法を選択します。
- パスワード認証 - ユーザー名とパスワードを手動で入力します。
プロファイル名、データベース名 (省略可能)、サーバー グループ、ポート番号など、その他の接続の詳細を指定します。
保存して接続する
[保存] & [接続] ボタンを選択して接続を確立します。 接続したら、オブジェクト エクスプローラー ツリーでサーバーを展開してデータベース、スキーマ、テーブルを表示するか、組み込みのクエリ ツールを使用してデータベース オブジェクトを管理します。
Troubleshoot
接続プロセス中に問題が発生した場合:
- Visual Studio Code と PostgreSQL 拡張機能がインストールされ、有効になっていることを確認します。
- Azure HorizonDB クラスターでクライアント IP アドレスが許可されていることを確認します。
- HorizonDB の場合は、ワークロードに適したエンドポイントに接続していることを確認します。書き込みでは、リーダー エンドポイントではなく、読み取り/書き込みエンドポイントをターゲットにする必要があります。
- 前提条件を満たしていない場合、サイド ウィンドウには、接続の再試行など、問題を解決するためのフィードバックと手順が表示されます。
- データベースのユーザー名と資格情報が正しいことを確認します。
フィードバックとサポート
バグ、機能要求、および問題については、Visual Studio Code の組み込みのフィードバック ツールを使用します。 このフィードバック プロセスは、Visual Studio Code の [ヘルプ] メニューまたは PGSQL コマンド パレットを使用して完了できます。
-
[ヘルプ] メニュー
- 問題の報告>ヘルプに移動する
-
コマンド パレット
-
Ctrl + Shift + Pでコマンド パレットを開き、次のコマンドを実行します。PGSQL: Report Issue
-