Wie wird die Postgres-Version im CLI-Pompt angezeigt?

8

Ich möchte die Version des Servers, mit dem ich verbunden bin, in der Eingabeaufforderung der Befehlszeilenschnittstelle (Konsole) anzeigen. Nach dem, was ich in der Dokumentation gelesen habe, ist es möglich, einen Shell-Befehl auszuführen und einen psql-Variablenwert anzuzeigen.

Die Idee ist, die Versionsinformationen des Servers über die Verbindung abzurufen und in der Eingabeaufforderung des Clients zu verwenden. Wie kann ich (in der .psqlrcDatei?) Die Serverversion in einer psql-Variablen zuweisen?

Bearbeiten: Jack Douglas ♦ hat die richtige Antwort, indem er auf die \gsetFunktion hinweist . Es endete mit einem

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

Vielen Dank.

greg
quelle

Antworten:

8

Seit 9.3 können Sie dies mit \ gset in psqlrc tun:

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

Oder als ' Der Wert der ausgewählten Eingabeaufforderungsvariablen wird buchstäblich gedruckt, außer wenn ein Prozentzeichen (%) angetroffen wird ':

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

Wenn Ihre Version <9.3 ist, ist es immer noch möglich, aber viel hässlicher , zB so etwas wie:

\set PROMPT1 `psql postgres postgres -Atc "select split_part(version(),' ',2)"`
Jack sagt, versuchen Sie es mit topanswers.xyz
quelle