Listado y cambio de bases de datos en PostgreSQL

Popular:
¡MEJORA LA CONFIGURACIÓN DE TU SERVIDOR! APLICAR AVA Y LANZA CON UN 15% DE DESCUENTO
USA EL CÓDIGO PROMOCIONAL:

Listado y cambio de bases de datos en PostgreSQL

PostgreSQL, un potente sistema de bases de datos objeto-relacional de código abierto, ofrece un amplio conjunto de herramientas y funciones para administrar bases de datos de manera eficiente. Tanto si eres un administrador de bases de datos como un desarrollador backend, saber cómo listar y cambiar entre bases de datos es fundamental para navegar en entornos con múltiples bases de datos.

1. Requisitos previos

Antes de comenzar, asegúrate de que:

  • PostgreSQL está instalado en tu sistema (psql es accesible).

  • Tienes los permisos adecuados (por ejemplo, superuser o un rol con derechos de conexión).

  • Puedes autenticarte con el servidor PostgreSQL usando un usuario válido.

2. Listado de bases de datos en PostgreSQL

🔍 Método 1: Usando el meta-comando de psql

Inicia el terminal interactivo de psql y ejecuta:

l

O la forma expandida:

list

Esto devolverá una lista de todas las bases de datos:

  • Nombre

  • Propietario

  • Codificación

  • Intercalación

  • Ctype

  • Privilegios de acceso

 Método 2: Usando una consulta SQL

Alternativamente, ejecuta esta instrucción SQL:

SELECT datname FROM pg_database WHERE datistemplate = false;

Esta consulta excluye las bases de datos plantilla (template0, template1) y muestra las bases de datos creadas por el usuario.

🛠️ Método 3: Shell de línea de comandos

Fuera de psql, desde tu terminal:

psql -U postgres -c "l"

También puedes usar psql -l:

psql -l

3. Cambio de bases de datos

A diferencia de otros RDBMS (por ejemplo, MySQL), PostgreSQL no admite cambiar de base de datos dentro de la misma sesión usando un comando como USE dbname;.

 ¿Por qué?

PostgreSQL establece una conexión con una base de datos específica al iniciar sesión. Para acceder a otra base de datos, debes desconectarte y reconectarte.

 Enfoque recomendado:

Sal de la sesión actual y vuelve a conectarte a la base de datos deseada:

q -- Quit current psql session

Luego:

psql -U username -d target_database

O directamente:

psql -U username -d target_database -h hostname -p port

Ejemplo:

psql -U admin -d salesdb

4. Consejos para un flujo de trabajo eficiente con múltiples bases de datos

a. Usa .pgpass para cambiar sin contraseña

Crea un archivo .pgpass para automatizar la autenticación:

hostname:port:database:username:password

Asegúrate de que tenga los permisos correctos:

chmod 600 ~/.pgpass

 b. Automatiza con scripts de Shell

Crea un script para listar y cambiar:

#!/bin/bash
echo "Available Databases:"
psql -U postgres -c "l"
read -p "Enter target DB: " db
psql -U postgres -d "$db"

 c. Usa variables de entorno

Exporta la DB y el usuario predeterminados para un cambio más rápido:

export PGDATABASE=mydb
export PGUSER=myuser
psql

5. Trabajando con PgAdmin y otras GUIs

En PgAdmin:

  1. Haz clic en el grupo de servidores.

  2. Clic derecho → Connect a una base de datos.

  3. Usa el desplegable de Query Tool para cambiar de base de datos (crea una nueva pestaña por DB).

Muchas herramientas (DBeaver, DataGrip) permiten múltiples conexiones con vistas de bases de datos en pestañas.

6. Extra: comprobar la base de datos actual

Dentro de psql, encuentra tu base de datos actual:

SELECT current_database();

O usa:

conninfo

Conclusión

Aunque PostgreSQL no permite cambiar de base de datos dentro de la sesión como algunos otros motores SQL, su sólido modelo de conexión garantiza un control de acceso y una gestión de recursos limpios y coherentes. Al dominar las técnicas de listado y adoptar prácticas inteligentes de reconexión, puedes administrar y cambiar entre bases de datos PostgreSQL de manera eficiente en cualquier entorno, ya sea mediante CLI, GUI o scripts.