ターミナルで psql を使用する

Visual Studio Code用 PostgreSQL 拡張機能を使用すると、データベースに自動的に接続psqlセッションを開き、.sqlを介してpsqlファイルを実行できます。 バックスラッシュ コマンド、psql ワークフロー、対話型スクリプトなど、ネイティブのCOPY機能に完全にアクセスできます。エディターを終了する必要はありません。

拡張機能は接続情報(ホスト、ポート、データベース、ユーザー名、パスワード)を psql に自動的に渡すため、セッションを開くとすぐに作業を開始できます。

前提条件

Note

拡張機能でpsqlが見つからない場合は、PostgreSQL のダウンロード ページへの [詳細情報] リンクが表示されたエラー通知が表示されます。 pgsql.pgBinaryDirs設定を使用して、拡張機能をカスタム インストールの場所に指定することもできます。 psql バイナリ パスの構成を参照してください。

psqlとクエリ エディターを選択する

ほとんどの PostgreSQL ワークフローでは、異なる時間に両方のツールが使用されます。

ツール 最適な用途
クエリ エディターと IntelliSense IntelliSense、グラフィカルな結果、グラフ、クエリ履歴、および結果のエクスポート。
psql ターミナル バックスラッシュ コマンド、ネイティブ スクリプトの実行、 \copy ワークフロー、ターミナル ベースのトラブルシューティング。

接続されたターミナルを開く

特定のデータベースに自動的に接続される psql セッションを開きます。 拡張機能は、psql-h-p、および-dフラグを使用して-Uを起動し、PGPASSWORD環境変数を設定するため、接続の詳細を手動で入力する必要はありません。

  1. [接続] ツリーで、データベース ノードを右クリックします。
  2. [ PSQL で接続] を選択します。

Visual Studio Code タスク ターミナルが開き、選択したデータベースにpsqlが接続されます。 ターミナル タブの名前は PSQL: <profile name> です。

このコマンドは、 コマンド パレット (Ctrl+Shift+P / Cmd+Shift+P): PGSQL の検索: PSQL との接続から実行することもできます。

Note

Microsoft Entra ID認証を使用するAzure Database for PostgreSQL接続の場合、拡張機能はpsqlを起動する前に認証トークンを検証し、そのトークンをパスワードとして渡します。 セッションは、手動による再認証なしで接続された状態を維持します。

SQL ファイルを実行する

アクティブなエディターの接続を使用して、psql.sql ファイルを実行します。 Visual Studio Codeタスクターミナルに出力が表示されます。

  1. エディターで .sql ファイルを開きます。
  2. まだ接続されていない場合は、エディターをデータベースに接続します。
  3. エディターで右クリックし、[ PSQL でファイルを実行] を選択します。

拡張機能によってファイルが保存され、アクティブな接続に対して psql -f <filepath> が実行されます。 タスク ターミナルが開き、実行出力が表示されます。 作業ディレクトリはファイルを含むフォルダーに設定されているため、スクリプト内の相対パスが正しく解決されます。

Important

実行前にファイルを保存します。 保存されていない変更を保存できない場合、PSQL コマンドを実行する前にファイルを保存する必要があることを示すメッセージが拡張機能に表示されます。 操作が取り消されます。

psql バイナリ パスを構成する

拡張機能は、次の順序で 3 つの場所で psql を検索します。

  1. バンドルされたバイナリ: バージョン別に整理された拡張機能に付属する PostgreSQL クライアント ツール。
  2. システム パス: オペレーティング システムの PATH 環境変数に一覧表示されているディレクトリ。
  3. カスタム ディレクトリ: pgsql.pgBinaryDirs 設定に追加するパス。

複数のバージョンの psql が見つかると、拡張機能によってサーバーの PostgreSQL バージョンに最も一致するバージョンが選択されます。 完全に一致するものがない場合は、使用可能な最も近いバージョンが使用されます。

カスタム バイナリ ディレクトリを追加するには:

  1. [設定] (Ctrl+, / Cmd+,) を開きます。
  2. pgsql.pgBinaryDirs を検索します。
  3. [ 項目の追加] を選択し、 psql バイナリを含むディレクトリへの絶対パスを入力します。
  4. 変更を有効にするには、Visual Studio Codeを再起動します。

Tip

Homebrew を使用する macOS では、一般的なパスは /opt/homebrew/opt/postgresql@17/bin。 Windowsでは、通常はC:\Program Files\PostgreSQL\17\bin

拡張機能が psql を起動する方法

[ PSQL で接続する ] または [ PSQL でファイルを実行する] を選択すると、拡張機能によって次のように psql 呼び出しがアセンブルされます。

接続の詳細 拡張機能がそれを渡す方法
ホスト (-h) 接続プロファイルのサーバー アドレスから。
ポート (-p) 接続プロファイルのポートから。 既定値は 5432 です。
データベース (-d) 選択したデータベース ノード、または接続プロファイルの既定のデータベース
ユーザー (-U) 接続プロファイルのユーザー名。Microsoft Entra IDの場合は、Entra のユーザー名または電子メール アドレス
パスワード PGPASSWORD環境変数を使用して設定します。Microsoft Entra IDの場合は、更新されたアクセス トークン
クライアント エンコード PGCLIENTENCODING環境変数を使用して設定する (既定値は UTF8)

拡張機能はpsqlVisual Studio Code タスクとして実行され、ターミナル パネルに表示されます。 タスクターミナルは、 psql が終了した後も開いたままになるため、出力を確認できます。

ユースケース例

psqlターミナルは、組み込みのクエリ エディター以外の機能が必要な場合に便利です。

  • 対話型 SQL セッション: アドホック コマンドを実行し、使い慣れた psql 環境で結果を検査します。
  • 一括データのインポート/エクスポート: \copy コマンドまたは COPY コマンドを使用して、高パフォーマンスのデータ読み込みを行います。
  • 管理タスク: 完全な psql アクセス権を持つロール、アクセス許可、およびサーバー構成を管理します。
  • スクリプト テスト: .sql スクリプトをデプロイする前にネイティブ psql で検証します。
  • 円記号コマンド: グラフィカル クエリ エディターで使用できない \dt\d+\timing\x、およびその他のコマンドを使用します。

一般的な psql タスク

データベース オブジェクトを検査する

psqlバックスラッシュ コマンドを使用して、スキーマの高速検査を行います。

\dt
\d+ public.orders
\dn

これらのコマンドは、テーブルの一覧表示、詳細なオブジェクト定義の表示、およびスキーマの一覧表示を行います。

タイミングと拡張出力をオンにする

\timing on
\x on
SELECT * FROM public.orders LIMIT 5;

\timing では、各ステートメントの後にクエリの実行時間が表示されます。 展開された出力 (\x) により、幅の広い行の読み取りが容易になります。

を使用してデータを読み込むまたはエクスポートする \copy

\copy public.customers FROM '/Users/example/customers.csv' WITH (FORMAT csv, HEADER true)

ターミナル指向の一括インポートまたはエクスポートに \copy を使用し、拡張機能によって管理される接続コンテキストを再利用します。

Troubleshoot

psql 見つかりません

拡張機能に "psql 実行可能ファイルが見つかりませんでした" というエラーが表示された場合は、次の手順を試してください。

  1. PostgreSQL のダウンロード ページから、オペレーティング システム用 の PostgreSQL クライアント ツールをインストールします。
  2. システム ターミナルでpsqlを実行して、psql --versionが使用可能であることを確認します。
  3. psqlが標準以外の場所にインストールされている場合は、pgsql.pgBinaryDirs設定にディレクトリを追加します。 psql バイナリ パスの構成を参照してください。
  4. Visual Studio Code を再起動します。

ワークスペース フォルダーを開く

拡張機能では、 psqlを起動するために開いているワークスペース フォルダーが必要です。 ワークスペース フォルダーを開く必要があることを示すメッセージが表示された場合は、 File>Open Folder でフォルダーを開き、もう一度やり直してください。

認証または接続エラー

psqlが開いても接続に失敗した場合:

  • 接続プロファイルでホスト、ポート、およびデータベースが正しいことを確認します。 接続と ID を参照してください。
  • Microsoft Entra ID認証の場合は、アカウントがまだサインインしていることを確認します。 拡張機能はトークンを自動的に更新しますが、期限切れのセッションでは再認証が必要になる場合があります。
  • SSL または SSH トンネルを使用する場合は、 psqlを再度開く前に、接続ダイアログから同じ接続を再テストします。

ファイルの変更が実行されない

PSQL でファイルを実行を実行すると、拡張機能は実行前にファイルをディスクに保存します。 保存に失敗した場合、拡張機能は操作を取り消します。 出力を確認する前に、ファイルを正常に保存します。