Como personalizar o psql
para ele diferenciar visualmente o servidor
de destino em que você está conectado?
Uma das ferramentas mais utilizadas na administração do PostgreSQL é o nosso bom e velho psql. Sua interface em modo texto permite a sua utilização local ou remota de maneira rápida e eficiente nos com alguns recursos interessantes como por exemplo a uomplementação de código baseada em contexto (proporcionado pelo readline).
Outro recurso que utilizo é a personalização do prompt, e este é muito útil para quem está acostumado a conectar em vários servidores distintos, administrando várias bases de dados em cada um deles, pois ele pode lhe fornecer dados interessantes de uma forma simples e prática.
Vou tentar exemplificar: imagine um cenário onde você administre 3 (três) servidores diferentes, cada um deles contendo algumas bases de dados, conforme a figura abaixo:

Você pode utilizar o script a seguir para definir o um prompt personalizado para cada servidor:
#!/bin/sh
########################################################
#
# Script inicializacao de parametros do psql
#
#
# 2007-2008 (c) Dickson Guedes <guediz at gmail dot com>
########################################################
ARG1=$1
PSQL_RC="$HOME/.psqlrc"
PROMPT_SRV01='%[%033[44;37;1m%](%`date +%H:%M:%S`) %n@%M:%>/%/ %[%033[0m%]\\n%x%# '
PROMPT_SRV02='%[%033[43;37;1m%](%`date +%H:%M:%S`) %n@%M:%>/%/ %[%033[0m%]\\n%x%# '
PROMPT_SRV03='%[%033[41;37;1m%](%`date +%H:%M:%S`) %n@%M:%>/%/ %[%033[0m%]\\n%x%# '
PROMPT_DEFAULT='%[%033[40;37;1m%](%`date +%H:%M:%S`) %n@%M:%>/%/ %[%033[0m%]\\n%x%# '
SERVIDOR=${ARG1:=srv01}
define_psqlrc() {
echo "\set QUIET 1" > $PSQL_RC
echo "\pset null '(null)'" >> $PSQL_RC
echo "\set PROMPT1 '$1'" >> $PSQL_RC
echo "\set PROMPT2 '| '" >> $PSQL_RC
echo "\set HISTSIZE 5000" >> $PSQL_RC
echo "\set HISTFILE ~/.psql_history- :DBNAME" >> $PSQL_RC
echo '\\timing' >> $PSQL_RC
echo "\set QUIET 0" >> $PSQL_RC
}
case $1 in
srv01) define_psqlrc "$PROMPT_SRV01" ;;
srv02) define_psqlrc "$PROMPT_SRV02" ;;
srv03) define_psqlrc "$PROMPT_SRV03" ;;
*) define_psqlrc "$PROMPT_DEFAULT" ;;
esac
psql -h $SERVIDOR
## FIM DO SCRIPT
A data é apresentada através do uso da sequência de escape %`command`. Já as cores são mostradas através do uso da sequência de escape %[ … %].
Outras sequências de escape e personalizações podem ser encontradas no manual do psql.