Mudamos do PostgreSQL 8.3 para 9.0. Talvez seja um novo recurso ou talvez apenas uma alteração na configuração, mas agora quando a saída de comandos (como \d tablename
) excede o espaço vertical visível, o psql parece canalizar a saída por algo semelhante a less
. Não consegui encontrar uma maneira de desativar esse comportamento. Algum conselho? Obrigado.
PS: Estou rolando o buffer usando o PuTTY, Shift+PgUp/PgDn
para não precisar da paginação do psql. Além disso, quando pressiono q
a paginação do psql, sua saída desaparece completamente da tela (assim como após a execução less
no bash), o que está errado do ponto de vista geral dos casos de uso.
Space
n ou PgDn ou seta para baixo como eu tentei.Respostas:
Existe documentação para isso.
Na seção \ pset do manual psql :
pager
Controla o uso de um programa de pager para consulta e saída de ajuda do psql. Se a variável de ambiente PAGER estiver configurada, a saída será canalizada para o programa especificado. Caso contrário, um padrão dependente da plataforma (como mais) é usado.
Quando a opção pager está desativada, o programa pager não é usado. Quando a opção pager está ativada, o pager é usado quando apropriado, ou seja, quando a saída é para um terminal e não cabe na tela. A opção pager também pode ser definida como always, o que faz com que o pager seja usado para todas as saídas do terminal, independentemente de caber na tela. \ pset pager sem valor ativa e desativa o uso do pager.
fonte
psql -P pager
.\pset pager
no psql para alternar se a saída vai para o pager. No entanto, você deve poder usar um pager e não fazer com que a saída desapareça da tela ao sair. A resposta é usar 'mais' em vez de 'menos' como pager. Você pode fazer isso definindo a variável de ambiente PAGER em seu shell ou adicionando uma variável de ambiente PAGER a um arquivo ~ / .psqlrc.PAGER
comoless -X
e não limpará a tela.Experimente o switcher:
fonte
\pset pager [on|off]
para resultado constante.Desligue o pager com
fonte
adicione o código abaixo em ~ / .psqlrc para manter o comportamento
\ pset pager off
fonte
Para desativar o pager ao usar
psql
no shell:Você também pode exportar uma
PAGER
variável de ambiente vazia , para não precisar adicionar a opção a cada instrução. Ele permanecerá definido até você fechar seu shell atual.Por fim, uma solução alternativa que pode ser mais fácil de lembrar: canalize a saída
cat
, o que desativará o pager padrãofonte
A melhor maneira, em resumo, é definir uma variável de ambiente para o pager, por exemplo
PAGER='less -X' psql
ou para definir uma vez
export PAGER='less -X'
então corra
psql
fonte