Cuando usamos la terminal para trabajar con Postgres (psql) nos encontramos con algunas de las siguientes dificultades:
- La falta de resaltado de sintaxis y autocompletado.
- La ausencia del uso de multilínea en las sentencias.
- Complicación para visualizar nuestros datos cuando la tabla tiene demasiados campos que no caben en la ventana de la terminal.
Así que en este artículo te mostraré algunas opciones que utilizo y que te pueden servir para superar estos inconvenientes, comenzaremos viendo como se ven los datos de una consulta cuando el tamaño del resultado supera el ancho de la terminal, y así poder apreciar el problema que queremos solucionar.
Como vimos el resultado no es legible, así que podemos solucionarlo con alguna de las siguientes opciones:
Modo expandido
El comando \\x
activa el modo expandido, el cual cambia la orientación de los datos de horizontal a vertical.
Formato Wrapped
El formato wrapped se activa con el comando \\pset format wrapped
que ajusta el tamaño de las columnas y su contenido.
Otra alternativa es instalar el cliente postgres pgcli que además implementa resaltado de sintaxis, autocompletado y el uso de multilínea.
Su instalación es demasiado fácil, solo ejecuta los siguientes comandos en la terminal linux:
$ sudo apt-get install python-pip
$ sudo apt-get install python-dev libpq-dev libevent-dev
$ sudo pip install pgcli
Para usarlo escriba alguno de los siguientes comandos en la terminal:
$ pgcli [database_name]
$ pgcli postgres://[user[:password]@][netloc][:port][/dbname]
Por ejemplo:
$ pgcli ed\_professors
$ pgcli postgres://edteam:Mypassword@localhost:5432/ed\_professors
Cuando ingresamos a pgcli ya tendremos habilitado el resaltado de sintaxis y el autocompletado, para activar el modo multilínea presionamos la tecla F3
, así podremos agregar las líneas que necesitemos en nuestra sentencia, la cual debemos finalizar con punto y coma ;
, por último cuando tengamos consultas que retornen un resultado mayor al ancho de la ventana nos podremos desplazar con las teclas de dirección para visualizar el contenido.
Espero que esta información pueda ser de utilidad y puedas ponerla en practica, ¡Nos vemos pronto!