Comment afficher la version Postgres dans le message CLI?

8

Je souhaite afficher la version du serveur auquel je suis connecté dans l'invite de l'interface de ligne de commande (console). D'après ce que j'ai lu dans la documentation, il est possible d'exécuter une commande shell, il est possible d'afficher une valeur de variable psql.

L'idée est d'obtenir les informations de version du serveur sur la connexion et de les utiliser dans l'invite du client. Comment puis-je (dans le .psqlrcfichier?) Affecter la version du serveur dans une variable psql?

Edit: Jack Douglas ♦ a la bonne réponse en soulignant la \gsetfonctionnalité. Il a fini avec un

show server_version
\gset
\set PROMPT1 '%:server_version: >'

Je vous remercie.

Greg
la source

Réponses:

8

Depuis 9.3, vous pouvez le faire en utilisant \ gset dans psqlrc:

select split_part(version(),' ',2) pmt
\gset
\set PROMPT1 '%:pmt:'

Ou, comme « la valeur de la variable d'invite sélectionnée est imprimée littéralement, sauf lorsqu'un signe de pourcentage (%) est rencontré »:

select split_part(version(),' ',2) "PROMPT1"
\gset

Si votre version est <9.3, c'est toujours possible, mais beaucoup plus laid , par exemple quelque chose comme:

\set PROMPT1 `psql postgres postgres -Atc "select split_part(version(),' ',2)"`
Jack dit d'essayer topanswers.xyz
la source