Como exibir a versão do Postgres na pompa da CLI?


8

Desejo exibir a versão do servidor ao qual estou conectado no prompt da interface da linha de comandos (console). Pelo que li na documentação, é possível executar um comando shell, é possível exibir um valor de variável psql.

A idéia é obter as informações da versão do servidor na conexão e usá-las no prompt do cliente. Como posso (no .psqlrcarquivo?) Atribuir a versão do servidor em uma variável psql?

Edit: Jack Douglas ♦ tem a resposta certa, apontando o \gsetrecurso. Acabou com um

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

Obrigado.

Respostas:


8

Desde a 9.3, você pode fazer isso usando \ gset no psqlrc:

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

Ou, como ' o valor da variável de prompt selecionada é impresso literalmente, exceto onde um sinal de porcentagem (%) é encontrado ':

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

Se sua versão for <9.3, ainda é possível, mas muito mais feia , por exemplo, algo como:

\set PROMPT1 `psql postgres postgres -Atc "select split_part(version(),' ',2)"`
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.