Osobně považuji PostgreSQL (dále jen PgSQL) za nejlepší svobodnou databázi, bohužel je (mírou nasazení) ve stínu populární MySQL. Pro připojení k PgSQL existuje velmi propracovaný nástroj PgAdmin či několik webových aplikací. Pokud potřebujete přístup z konzole tak si můžete vybrat výchozí psql
, nebo zvolit mnohem lepší pgcli
.
Proč, proboha z konzole?
„Moderní“ (hlavně mladší) vývojáři jsou zvyklí na „myšoidní rozhraní“, jež jsou pro oko přitažlivá a vše je dostupné jen na několik kliků. Pokud je PgSQL na vzdáleném serveru a nemáte povolený přístup z IP na které jste, tak zbývá přístup přes www rozhraní, nebo ještě lépe přes terminál, k němuž se vzdáleně připojíte pomocí SSH. (Vzdálený neberte doslovně, může to být i jen v sousední budově.) Konzolový (cli) přístup má tak malou režii, že jeho použitelnost není omezena ani nejpomalejším GPRS připojením.
Co to je pgcli?
Cli nástroj pro PgSQL, který nabízí stejné možnosti jako defaultní psql
, ale navíc umí auto completion a zvýrazňování syntaxe, nebo víceřádkové příkazy s inteligentní historií. Vývojáři si pro vývoj vybrali programovací jazyk Python
Instalace a používání pgcli
Pro instalaci asi nejlépe poslouží standardní Pythonovský nástroje pip
, nebo easy-install
; moje oblíběná je ta první. Pro některé distribuce je i možnost využití repozitářů (například Fedora Copr a EPEL pro CentOS). Pro Windows jsem také našel „standardní pythonovský postup“, žádný instalátor, ale moc intenzivně jsem nehledal.
pip install pgcli
(samozřejmě po eskalaci práv na roota).
Parametry připojení jsou stejné, jako u defaultního psql.
Usage: pgcli [OPTIONS] [DATABASE] [USERNAME]
Options:
-h, --host TEXT Host address of the postgres database.
-p, --port INTEGER Port number at which the postgres instance is
listening.
-U, --user TEXT User name to connect to the postgres database.
-W, --password Force password prompt.
-w, --no-password Never prompt for password.
-v, --version Version of pgcli.
-d, --dbname TEXT database name to connect to.
--pgclirc TEXT Location of pgclirc file.
-D, --dsn TEXT Use DSN configured into the [alias_dsn] section of
pgclirc file.
-R, --row-limit INTEGER Set threshold for row limit prompt. Use 0 to
disable prompt.
--help Show this message and exit.
K databázi se připojuji příkazem pgcli -h 127.0.0.1 -U marek -d foo -W
.
![](https://marek.olsavsky.cz/wp-content/uploads/2017/02/pgcli1-1024x144.png)
![](https://marek.olsavsky.cz/wp-content/uploads/2017/02/pgcli2.png)
![](https://marek.olsavsky.cz/wp-content/uploads/2017/02/pgcli3-1024x668.png)
Uživatel nenarazí na nic, co by neznal z psql, jen je vše přehlednější a pohodlnější. Historie funguje nejen přes šipky, ale i přes klávesy Page Up/Page Down, což je ocenitelné u příkazů „na několik řádek“.
Odkaz
pgcli.com – domovská stránka projektu.
Dodatek
Podobný nástroj existuje i pro MariaDB/MySQL, najdete jej na adrese mycli.net. A přiznám se, že klasická konzole pro MySQL/MariaDB mi připadá velmi omezující.
Komentáře
2 komentáře: „Lepší konzolový nástroj pro PostgreSQL: pgcli“
Dík za tip, vypadá to dobře 🙂
Není zač. Hlavní dík patří Pavlovi Stěhulemu, který pgcli před delší dobou zapropagoval v PostgreSQL konfeře. Nástroj mi jednoznačně sedl.