Client pgcli

Note

Quelques possibilités si vous disposez d’une machine sur laquelle on peut installer pgcli et sur laquelle on peut établir des tunnels ssh

Installer

À partir de pgcli.com

Utiliser

Établissement d’un tunel SSH sur votre machine (ici sous Linux)

Remplacer id_ent par votre identifiant ENT dans la suite.

Saisissez votre mot de passe (attention : pas d’écho)

$ ssh  id_ent@etu-pgsql.math.univ-paris-diderot.fr -L 5436:localhost:5432 -N
(id_ent@etu-pgsql.math.univ-paris-diderot.fr) Password for id_ent@etu-pgsql.math.univ-paris-diderot.fr:
$
Connexion au serveur PostGres, demander la liste des commandes disponibles

Utilisez votre tunnel SSH pour accéder au serveur PostGres.

Dans une autre fenêtre terminal, saisissez à nouveau votre mot de passe.

$ pgcli -p 5436 -U id_ent -W -h localhost -d bd_2023-24
Password for id_ent: 
Server: PostgreSQL 13.8
Version: 3.5.0
Home: http://pgcli.com
bd_2023-24> \?  

Vous êtes maintenant dans une session sur le serveur PostGres. Vous êtes connecté au catalogue bd_2023-24

Vous pouvez utiliser une grande partie des commandes magiques de psql

Choisir un schéma par défaut (ici world)
bd_2023-24> SET search_path TO world ;
SET
Time: 0.002s
Lister les tables du schéma par défaut
bd_2023-24> \d
+--------+-----------------+-------+-----------+
| Schema | Name            | Type  | Owner     |
|--------+-----------------+-------+-----------|
| world  | city            | table | boucheron |
| world  | country         | table | boucheron |
| world  | countrylanguage | table | boucheron |
+--------+-----------------+-------+-----------+
SELECT 3
Time: 0.013s
Schéma d’une table
bd_2023-24> \d city
 
+-------------+--------------+-----------+
| Column      | Type         | Modifiers |
|-------------+--------------+-----------|
| id          | integer      |  not null |
| name        | text         |  not null |
| countrycode | character(3) |  not null |
| district    | text         |  not null |
| population  | integer      |  not null |
+-------------+--------------+-----------+
Indexes:
    "city_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
    "city_country_fk" FOREIGN KEY (countrycode) REFERENCES country(countrycode) ON UPDATE CASCADE ON DELETE SET NULL DEFE>
Referenced by:
    TABLE "country" CONSTRAINT "country_capital_fkey" FOREIGN KEY (capital) REFERENCES city(id)

Time: 0.025s
Informations de connexion
bd_2023-24> \conninfo
You are connected to database "bd_2023-24" as user "id_end" on host "localhost" at port "5436".
Time: 0.000s
Editer, sauvegarder et exécuter des requêtes
bd_2023-24> \e 

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/nvim
  4. /usr/bin/vim.tiny
  5. /usr/bin/emacs
  6. /usr/bin/code
  7. /bin/ed
Choose 1-7 [1]: 6

Sous mon éditeur préféré (vs code ici), j’edite une requête

SELECT *
FROM world.city ci
WHERE ci.countrycode='FRA' ;

sauvegardée dans un fichier de chemin d’accès /tmp/editor-w6qw9gs0.sql

Dans ma session sur bd_2023-24, je peux maintenant inclure et exécuter cette requête.

bd_2023-24> \i /tmp/editor-w6qw9gs0.sql
+------+----------------------+-------------+----------------------+------------+
| id   | name                 | countrycode | district             | population |
|------+----------------------+-------------+----------------------+------------|
| 2974 | Paris                | FRA         | Île-de-France        | 2125246    |
| 2975 | Marseille            | FRA         | Provence-Alpes-Côte  | 798430     |
| 2976 | Lyon                 | FRA         | Rhône-Alpes          | 445452     |
| 2977 | Toulouse             | FRA         | Midi-Pyrénées        | 390350     |
| 2978 | Nice                 | FRA         | Provence-Alpes-Côte  | 342738     |
...
Jetez un oeil sur les named queries

Renseignements utiles

Documentation pgcli