Cómo salir de psql: El comando clave para la consola de PostgreSQL

Aprender a salir de la consola de PostgreSQL es básico, pero a veces no tan obvio. Te muestro la forma más directa y confiable.

Si alguna vez te has conectado a una base de datos PostgreSQL usando la utilidad de línea de comandos psql y te has quedado pegado sin saber cómo salir, no te preocupes, no eres el único. De hecho, es una de esas cosas que das por sentadas hasta que te encuentras en la situación. La forma más rápida y universalmente aceptada para salir de psql es con un simple comando:


\q

Sí, eso es todo. Escribes \q y luego presionas ENTER. Te saca de la sesión de psql y te devuelve a tu terminal habitual. Es mi reflejo, mi músculo memorizado cada vez que termino de revisar algo rápido.

El comando principal: \q

Desde que empecé a trabajar con PostgreSQL, hace más de una década, \q ha sido mi comando de cabecera. Es un metacomando de psql, lo que significa que no es una instrucción SQL sino una directiva para el cliente psql. Es robusto, funciona en todas las versiones que he usado y no tiene efectos secundarios.

Imagina que te conectas así:


psql -U tu_usuario -d tu_base_de_datos

Una vez dentro, después de ejecutar tus consultas y hacer lo que tengas que hacer, simplemente escribes:


mi_base_de_datos=> \q

Y listo, fuera. Simple y efectivo. A veces me frustra que en el desarrollo, buscamos soluciones complejas para problemas simples, y luego en lo más básico nos complicamos. Aquí, la solución es tan simple como parece, y eso me gusta.

Otras opciones: quit, exit y el factor PostgreSQL 11

Con el tiempo, PostgreSQL ha evolucionado. A partir de la versión 11 (lanzada en 2018), se incluyeron las palabras clave quit y exit para que fuera más intuitivo salir de la herramienta. Esto fue un cambio bienvenido para algunos, ya que quit o exit son comandos comunes en otras interfaces de línea de comandos.

Así que, si estás en PostgreSQL 11 o superior, también puedes usar:

  • quit
  • exit

Ambos funcionan de la misma manera que \q, te sacan de la sesión. Sin embargo, ojo que a diferencia de \q, que es un metacomando, quit y exit son tratados como palabras clave, lo que puede tener implicaciones sutiles en contextos muy específicos (aunque para el uso diario, la diferencia es prácticamente nula).

Mi opinión: la simplicidad es clave

En mi caso, y en el de muchos desarrolladores con los que he trabajado, \q sigue siendo la forma por defecto de salir. ¿Por qué? Principalmente por costumbre y por consistencia. Antes de PostgreSQL 11, \q era la única opción directa y universal. Si trabajas con múltiples versiones de PostgreSQL o en diferentes entornos, \q siempre te va a funcionar, sin importar la versión específica de la base de datos o el cliente psql.

Recuerdo una vez, trabajando en un proyecto de cliente que aún usaba una versión antigua de PostgreSQL, un colega que se había acostumbrado a usar exit se quedó un rato pegado. No le funcionaba. Tuvo que volver a lo básico, y me pidió el dato. Son esos pequeños detalles que te recuerdan que las soluciones simples y universales a menudo son las mejores.

Yo prefiero enseñar y usar la opción que sé que va a funcionar el 100% de las veces, para evitar sorpresas. Es como cuando configuras un .gitignore, lo haces bien una vez y te olvidas.

Si bien es bueno saber que quit y exit son opciones válidas en versiones más recientes, mi recomendación es que te acostumbres a \q. Te ahorrará dolores de cabeza y es una buena práctica en términos de compatibilidad.

Esto de las palabras clave quit y exit, de hecho, me costó enterarme. Por pura costumbre, siempre usé y enseñé \q. Descubrí lo de las nuevas palabras clave bastante después de que saliera PG11, y si bien las reconozco, no las he incorporado a mi flujo de trabajo. Me hubiese gustado saberlo antes para al menos tener el conocimiento, pero la verdad, no ha cambiado mi forma de trabajar.

Jorge RequenaDeveloper full-stack · Chile