117 votes

Désactiver le pager pour la sortie interactive de psql

Nous sommes passés de PostgreSQL 8.3 à 9.0. Il s'agit peut-être d'une nouvelle fonctionnalité ou d'un simple changement de configuration, mais maintenant, lorsque la sortie des commandes (comme, \d tablename ) dépasse l'espace vertical visible, psql semble faire passer la sortie par quelque chose de similaire à less . Je n'ai pas trouvé le moyen de désactiver ce comportement. Un conseil ? Merci.

P.S. Je fais défiler le buffer en utilisant la méthode PuTTY. Shift+PgUp/PgDn donc je n'ai pas besoin de la pagination de psql. De plus, lorsque j'appuie sur q dans la pagination du psql, sa sortie disparaît entièrement de l'écran (tout comme après l'exécution de less en bash), ce qui est faux du point de vue des cas d'utilisation généraux.

119voto

Sven Points 95985

TL;DR :

\pset pager 0

De la \pset de la section Manuel psql :

Téléavertisseur

Contrôle l'utilisation d'un programme de pager pour la sortie des requêtes et de l'aide psql. Si la variable d'environnement PAGER est définie, la sortie est acheminée vers le programme spécifié. Sinon, un défaut dépendant de la plate-forme (tel que more) est utilisé.

Lorsque l'option de téléavertisseur est désactivée, le programme de téléavertisseur n'est pas utilisé. Lorsque l'option de téléavertisseur est activée, le téléavertisseur est utilisé lorsque cela est approprié, c'est-à-dire lorsque la sortie se fait vers un terminal et ne tient pas sur l'écran. L'option de téléavertisseur peut également être définie sur toujours, ce qui entraîne l'utilisation du téléavertisseur pour toutes les sorties du terminal, qu'elles tiennent ou non sur l'écran. \pset pager sans valeur permet d'activer et de désactiver l'utilisation du pager.

45voto

mivk Points 3226

Pour éteindre le téléavertisseur lors de l'utilisation psql dans le Shell :

psql -P pager=off ...

Vous pouvez également exporter un fichier vide PAGER de sorte que vous n'avez pas besoin d'ajouter l'option à chaque déclaration. Elle restera définie jusqu'à ce que vous fermiez votre Shell actuel.

export PAGER=
psql ...

Enfin, une solution de contournement qui peut être plus facile à retenir : faire passer la sortie par cat qui désactivera le pager par défaut

psql ... | cat

28voto

Lebnik Points 361

Essayez le commutateur :

database_name=# \pset pager
Pager is used for long output.
database_name=# \pset pager
Pager usage is off.

11voto

sabri Points 324

Ajouter le code suivant dans ~/.psqlrc pour conserver le comportement

\pset pager éteint

10voto

David Jones Points 201

Éteignez le téléavertisseur avec

\pset pager off

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X