
Ułatwianie pracy z PostgreSQL cz. II – klient konsolowy pgcli

W tym artykule przybliżymy ciekawą alternatywę dla psql, która w znaczący sposób może usprawnić pracę z bazą danych. Pgcli jest interfejsem terminalowym do bazy danych nastawionym na ułatwienie interakcji ze środowiskiem tekstowym i o większych możliwościach niż standardowe narzędzie.
W tym artykule przybliżymy ciekawą alternatywę dla psql
, która w znaczący sposób może usprawnić pracę z bazą danych. Pgcli jest interfejsem terminalowym do bazy danych nastawionym na ułatwienie interakcji ze środowiskiem tekstowym i o większych możliwościach niż standardowe narzędzie.
Na wstępie warto zadać sobie pytanie – „czego mi brakuje w psql
”? Moim zdaniem jest to bardzo kompletne narzędzie, które pozwala na swobodną konfigurację (można o tym przeczytać w serii „Tips & Tricks – Poradnik psql” cz. I, cz. II oraz cz. III). Niemniej, wyobrażam sobie sytuacje, w których interfejs standardowo dostarczany przez twórców silnika PostgreSQL, nie jest wystarczający. Jednym z przykładów jest interaktywne tworzenie zapytania, gdzie możliwości pgcli
mogą przyćmić psql
.
Zgodnie z preferencjami twórcy tego projektu, o czym możemy przeczytać na stronie FAQ, jest on: (…) wielkim fanem CLI. W szczególności REPL.(…). I faktycznie pgcli
jest narzędziem, które stara się maksymalnie uprościć pracę w pętli – read-eval-print, czyli wczytaj-ewaluuj-wydrukuj.
Instalacja
Proces instalacji przy korzystaniu z repozytoriów PostgreSQL Global Development Group jest bardzo prosty. W przypadku dystrybucji z rodziny Enterprise Linux, instalacja sprowadza się do następującego polecenia:
yum install -y pgcli
Teraz można już połączyć się przykładowo z lokalnie działającą bazą, na przykład przez wykorzystanie najprostszego mechanizmu autoryzacji tak jak w poniższym przykładzie:
sudo -u postgres pgcli -U postgres
Możliwości pgcli
Zgodnie z tym, co można przeczytać już w samym opisie, pgcli
to interfejs do PostgreSQL z autouzupełnianiem oraz kolorowaniem składni. Ponadto podczas edytowania możemy skorzystać z dwóch stylów wprowadzania tekstu znanych z powłoki Bash – tak jak w Emacsie lub zgodnie ze sposobem edycji w Vi (o edycji tekstu w konsoli pisaliśmy tutaj). Dodatkowo szczególnie powtarzalne zapytania możemy zapisać w postaci tzw. kwerend nazwanych (ang. named queries). W przypadku prac administracyjnych to udogodnienie może stanowić ciekawą alternatywę dla wywoływania zapisanych w plikach zapytań.
Autouzupełnianie
pgcli
wyróżnia się wykorzystaniem tzw. inteligentnego uzupełniania. Oznacza to, że lista podpowiedzi nie składa się jedynie z listy słów kluczowych akurat pasujących do wpisywanego tekstu, a zostaje ona zawężona tylko do tych podpowiedzi, które pasują do danego kontekstu. Dla przykładu po wpisaniu początku zapytania:
SELECT * FROM
uzupełnienie może wywnioskować, że tylko nazwy tabel lub innych obiektów zachowujących się jak one, jest w tym miejscu możliwe do wykorzystania. W praktyce wygląda to następująco:
Wygląd i konfiguracja
Podobnie jak w przypadku psql
, możemy dostosować zachętkę (ang. prompt) poleceń do własnych preferencji zgodnie z plikiem konfiguracyjnym (o którym można poczytać w dokumentacji prompt). Wiele ze znanych z psql
komend jest dostępnych również w tej aplikacji. Pełną listę można wyświetlić przez wywołanie \?
.
Warto zauważyć, że przy pomocy komendy \pager
, możemy ustawić dowolną aplikację zawijającą tekst, w tym, prezentowany w poprzednim artykule z tej serii, pspg.
Wszelkie zamiany w konfiguracji wykonujemy w pliku ~/.config/pgcli/config
. Zapoznanie się z jego treścią jest najprostszym sposobem na poznanie możliwości pgcli
. Tutaj można też zdefiniować schemat kolorów zgodnie z własnymi preferencjami. Ponadto można znaleźć opcje odpowiadające m.in. za format wyświetlanych liczb, wartości NULL, wielkość znaków uzupełnianych słów kluczowych itd.
Podsumowanie
Jak widać, mnogość dostępnych narzędzi pozwala na ożywienie zwykle czarno-białego środowiska konsolowego. Dodatkowe możliwości w znaczący sposób mogą ułatwić i może nawet uprzyjemnić pracę. Na koniec dziękuję za poświęcony czas i zachęcam do subskrypcji naszego newslettera.