Перерахування та перемикання баз даних у PostgreSQL

PostgreSQL, потужна система об’єктно-реляційних баз даних з відкритим вихідним кодом, пропонує багатий набір інструментів і функцій для ефективного керування базами даних. Незалежно від того, чи ви адміністратор бази даних, чи бекенд-розробник, знання того, як перераховувати та перемикатися між базами даних, є фундаментальним для навігації в середовищах з декількома базами даних.

1. Необхідні умови

Перш ніж почати, переконайтеся, що

  • PostgreSQL встановлено у вашій системі( доступ доpsql є).

  • Ви маєте відповідні дозволи (наприклад, суперкористувач або роль з правами на підключення).

  • Ви можете авторизуватися на сервері PostgreSQL за допомогою дійсного користувача.

2. Перерахування баз даних у PostgreSQL

спосіб 1: Використання мета-команди psql

Запустіть інтерактивний термінал psql і виконайте

\l

Або в розгорнутому вигляді:

\list

Поверне список усіх баз даних:

  • Name

  • Owner

  • Encoding

  • Collation

  • Ctype

  • Access privileges

Спосіб 2: Використання SQL-запиту

Альтернативно, виконайте цей SQL-запит:

SELECT datname FROM pg_database WHERE datistemplate = false;

Цей запит виключає шаблонні бази даних (template0, template1) і показує бази даних, створені користувачем.

🛠️ Спосіб 3: Командний рядок

Поза psql, з вашого терміналу:

psql -U postgres -c "\l"

Ви також можете використовувати psql -l:

psql -l

3. Перемикання баз даних

На відміну від деяких інших СУБД (наприклад, MySQL), PostgreSQL не підтримує перемикання баз даних в межах одного сеансу за допомогою команди типу USE dbname;.

Чому?

PostgreSQL встановлює з’єднання з певною базою даних під час входу в систему. Щоб отримати доступ до іншої бази даних, ви повинні розірвати з’єднання і підключитися знову.

Рекомендований підхід:

Вийдіть з поточного сеансу і перепідключіться до потрібної бази даних:

\q -- Завершити поточний сеанс psql

Потім:

psql -U username -d target_database

Або безпосередньо:

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

Приклад:

psql -U admin -d salesdb

4. Поради щодо ефективної роботи з декількома базами даних

a. Використовуйте .pgpass для безпарольного перемикання

Створіть файл .pgpass для автоматизації автентифікації:

hostname:port:database:username:password

Переконайтеся, що він має правильні дозволи:

chmod 600 ~/.pgpass

b. Автоматизація за допомогою скриптів оболонки

Створіть скрипт для переліку та перемикання:

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

c. Використання змінних оточення

Експортуйте БД та користувача за замовчуванням для швидшого перемикання:

export PGDATABASE=mydb
export PGUSER=myuser
psql

5. Робота з PgAdmin та іншими графічними інтерфейсами

У PgAdmin:

  1. Натисніть на групу серверів.

  2. Клацніть правою кнопкою миші → Підключитися до бази даних.

  3. Використовуйте випадаючий список Інструмент запитів для перемикання баз даних (створює нову вкладку для кожної бази даних).

Багато інструментів (DBeaver, DataGrip) дозволяють створювати кілька з’єднань з переглядом баз даних у вигляді вкладок.

6. Бонус: перевірка поточної бази даних

У psql знайдіть поточну базу даних:

SELECT поточна_база_даних();

Або використовуйте:

\conninfo

Висновок

Хоча PostgreSQL не дозволяє перемикатися між базами даних під час сеансу, як деякі інші SQL-рушії, її надійна модель з’єднань забезпечує чистий, послідовний контроль доступу та управління ресурсами. Опанувавши техніку створення списків і застосувавши розумні практики перепідключення, ви зможете ефективно керувати базами даних PostgreSQL і переключатися між ними в будь-якому середовищі – через CLI, графічний інтерфейс або скрипти.