Używanie narzędzia psql w terminalu

Rozszerzenie PostgreSQL dla Visual Studio Code umożliwia otwieranie sesji psql automatycznie połączonych z bazami danych oraz uruchamianie plików .sql za pomocą psql. Uzyskujesz pełny dostęp do natywnych funkcji psql, w tym poleceń poprzedzanych ukośnikiem odwrotnym, przepływów pracy COPY i interaktywnego skryptowania, bez opuszczania edytora.

Rozszerzenie automatycznie przekazuje dane połączenia (host, port, bazę danych, użytkownika i hasło) do psql, dzięki czemu możesz rozpocząć pracę natychmiast po otwarciu sesji.

Wymagania wstępne

Note

Jeśli rozszerzenie nie może zlokalizować psqlpliku , zostanie wyświetlone powiadomienie o błędzie z linkiem Dowiedz się więcej do strony pobierania bazy danych PostgreSQL. Można również wskazać rozszerzeniu niestandardową lokalizację instalacji za pomocą ustawienia pgsql.pgBinaryDirs. Zobacz Konfigurowanie ścieżki binarnej psql.

Wybieranie między psql i edytorem zapytań

Większość przepływów pracy postgreSQL używa obu narzędzi w różnym czasie:

Narzędzie Najlepsze dla
Edytor zapytań i funkcja IntelliSense Funkcja IntelliSense, wyniki graficzne, wykresy, historia zapytań i eksportowanie wyników.
psql terminal Polecenia z ukośnikiem odwrotnym, natywne uruchamianie skryptów, przepływy pracy \copy i rozwiązywanie problemów w terminalu.

Otwieranie połączonego terminalu

Otwórz sesję psql , która jest automatycznie połączona z określoną bazą danych. Rozszerzenie uruchamia psql z flagami -h, -p, -d i -U oraz ustawia zmienną środowiskową PGPASSWORD, więc nie trzeba ręcznie wprowadzać danych połączenia.

  1. W drzewie Połączenia kliknij prawym przyciskiem myszy węzeł bazy danych.
  2. Wybierz pozycję Połącz z usługą PSQL.

Otworzy się terminal zadań programu Visual Studio Code z elementem psql połączonym z wybraną bazą danych. Karta terminalu nosi nazwę PSQL: <nazwa> profilu.

Możesz również uruchomić to polecenie z Palety poleceń (Ctrl+Shift+P / Cmd+Shift+P): wyszukaj PGSQL: Connect with PSQL.

Note

W przypadku połączeń Azure Database for PostgreSQL korzystających z uwierzytelniania Microsoft Entra ID rozszerzenie weryfikuje token uwierzytelniania przed uruchomieniem psql i przekazuje token jako hasło. Sesja pozostaje połączona bez ręcznego ponownego uwierzytelniania.

Uruchamianie pliku SQL

Uruchom plik .sql za pomocą psql, używając połączenia z aktywnego edytora. Dane wyjściowe są wyświetlane w terminalu zadań Visual Studio Code.

  1. .sql Otwórz plik w edytorze.
  2. Połącz edytor z bazą danych, jeśli nie jest jeszcze połączony.
  3. Kliknij prawym przyciskiem myszy w edytorze i wybierz polecenie Uruchom plik za pomocą programu PSQL.

Rozszerzenie zapisuje plik, a następnie uruchamia psql -f <filepath> dla aktywnego połączenia. Otwiera się terminal zadania, aby wyświetlić wynik wykonania. Katalog roboczy jest ustawiany na folder zawierający plik, dzięki czemu ścieżki względne w skrypcie są prawidłowo rozpoznawane.

Ważna

Zapisz plik przed wykonaniem. Jeśli nie można zapisać niezapisanych zmian, rozszerzenie wyświetla komunikat informujący, że plik musi zostać zapisany przed wykonaniem poleceń PSQL. Operacja zostaje anulowana.

Konfigurowanie ścieżki binarnej psql

Rozszerzenie wyszukuje psql w trzech lokalizacjach w następującej kolejności:

  1. Dołączone pliki binarne: narzędzia klienckie PostgreSQL dostarczane wraz z rozszerzeniem, uporządkowane według wersji.
  2. Ścieżka systemu: katalogi wymienione w zmiennej środowiskowej PATH systemu operacyjnego.
  3. Niestandardowe katalogi: ścieżki dodane w ustawieniu pgsql.pgBinaryDirs.

Jeśli zostanie znalezionych wiele wersji psql, rozszerzenie wybierze wersję, która najlepiej pasuje do wersji PostgreSQL serwera. Jeśli nie istnieje dokładne dopasowanie, używa najbliższej dostępnej wersji.

Aby dodać niestandardowy katalog binarny:

  1. Otwórz pozycję Ustawienia (Ctrl+, / Cmd+,).
  2. Wyszukaj pgsql.pgBinaryDirs.
  3. Wybierz pozycję Dodaj element i wprowadź ścieżkę bezwzględną do katalogu zawierającego psql plik binarny.
  4. Uruchom ponownie Visual Studio Code, aby zmiany zaczęły obowiązywać.

Wskazówka

W systemie macOS z oprogramowaniem Homebrew typową ścieżką jest /opt/homebrew/opt/postgresql@17/bin. W Windows zazwyczaj jest to C:\Program Files\PostgreSQL\17\bin.

Jak rozszerzenie uruchamia narzędzie psql

Po wybraniu opcji Połącz za pomocą PSQL lub Uruchom plik za pomocą PSQL rozszerzenie tworzy wywołanie psql w następujący sposób:

Szczegóły połączenia W jaki sposób rozszerzenie je przekazuje
Host (-h) Z adresu serwera w profilu połączenia.
Port (-p) Z portu profilu połączenia. Wartość domyślna to 5432.
Baza danych (-d) Wybrany węzeł bazy danych lub domyślna baza danych profilu połączenia
Użytkownik (-U) Nazwa użytkownika dla profilu połączenia; w przypadku Microsoft Entra ID nazwa użytkownika Entra lub adres e-mail Entra
Hasło Ustawiane za pomocą zmiennej środowiskowej PGPASSWORD; w przypadku Microsoft Entra ID, odświeżony token dostępu
Kodowanie klienta Ustaw za pomocą zmiennej środowiskowej PGCLIENTENCODING (wartości domyślne to UTF8)

Rozszerzenie uruchamia psql jako zadanie w Visual Studio Code, które otwiera się w panelu Terminal. Terminal zadania pozostaje otwarty po psql zakończeniu pracy, aby można było przejrzeć dane wyjściowe.

Przypadki użycia

Terminal psql jest przydatny, gdy potrzebujesz możliwości poza wbudowanym edytorem zapytań:

  • Interaktywne sesje SQL: uruchom polecenia ad hoc i sprawdź wyniki w znanym psql środowisku.
  • Zbiorczy import/eksport danych: Użyj poleceń \copy lub COPY do wydajnego ładowania danych.
  • Zadania administracyjne: Zarządzanie rolami, uprawnieniami i konfiguracją serwera z pełnym psql dostępem.
  • Testowanie skryptów: zweryfikuj .sql skrypty natywne psql przed ich wdrożeniem.
  • Polecenia z ukośnikiem odwrotnym: Użyj \dt, \d+, \timing, \x i innych poleceń, które nie są dostępne w graficznym edytorze zapytań.

Typowe psql zadania

Inspekcja obiektów bazy danych

Użyj psql poleceń z ukośnikiem odwrotnym do szybkiego sprawdzania schematu:

\dt
\d+ public.orders
\dn

Te polecenia wyświetlają tabele, pokazują szczegółowe definicje obiektów i wyświetlają schematy.

Włącz pomiar czasu i rozszerzone dane wyjściowe

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

\timing wyświetla czas trwania zapytania po każdej instrukcji. Rozwinięte dane wyjściowe (\x) ułatwiają odczytywanie szerokich wierszy.

Ładowanie lub eksportowanie danych za pomocą polecenia \copy

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

Użyj \copy do zbiorczego importu lub eksportu z poziomu terminala, z ponownym wykorzystaniem kontekstu połączenia zarządzanego przez rozszerzenie.

Troubleshoot

psql nie znaleziono

Jeśli rozszerzenie wyświetla błąd "Nie można odnaleźć pliku wykonywalnego psql", spróbuj wykonać następujące kroki:

  1. Zainstaluj narzędzia klienckie PostgreSQL dla systemu operacyjnego ze strony pobierania postgreSQL.
  2. Sprawdź, czy psql jest dostępna, uruchamiając polecenie psql --version w terminalu systemu.
  3. Jeśli psql jest zainstalowana w niestandardowej lokalizacji, dodaj katalog do pgsql.pgBinaryDirs ustawienia. Zobacz Konfigurowanie ścieżki binarnej psql.
  4. Uruchom ponownie program Visual Studio Code.

Otwieranie folderu obszaru roboczego

Rozszerzenie wymaga otwartego folderu obszaru roboczego, aby uruchomić psql. Jeśli zostanie wyświetlony komunikat informujący, że folder obszaru roboczego musi być otwarty, otwórz folder zplikiem >Otwórz folder, a następnie spróbuj ponownie.

Błędy uwierzytelniania lub połączenia

Jeśli psql zostanie otwarte, ale połączenie się nie powiedzie:

  • Upewnij się, że host, port i baza danych są poprawne w profilu połączenia. Zobacz Połączenia i tożsamość.
  • W przypadku Microsoft Entra ID uwierzytelniania sprawdź, czy twoje konto jest nadal zalogowane. Rozszerzenie odświeża tokeny automatycznie, ale wygasłe sesje mogą wymagać ponownego uwierzytelnienia.
  • Jeśli używasz protokołu SSL lub tunelu SSH, ponownie przetestuj to samo połączenie z okna dialogowego połączenia przed ponownym otwarciem psqlprogramu .

Zmiany plików nie są uruchamiane

Po uruchomieniu pliku z programem Run file with PSQL rozszerzenie zapisuje plik na dysku przed wykonaniem. Jeśli zapisywanie zakończy się niepowodzeniem, rozszerzenie anuluje operację. Zapisz plik pomyślnie przed przejrzeniem danych wyjściowych.