
Проверка версии PostgreSQL требуется при настройке окружения, подборе модулей, работе с расширениями и обновлении серверов. Разные сборки поддерживают собственные наборы функций, поэтому знание точного номера помогает избежать конфликтов при выполнении SQL-скриптов и установке дополнений.
Для приложений и автоматизированных систем полезно получать номер версии через параметры соединения или запросы к системным функциям. Такой подход помогает контролировать совместимость во время запуска и разработки.
Проверка версии PostgreSQL через psql командой SELECT version()
Чтобы выполнить команду, нужно подключиться к серверу:
psql -U имя_пользователя -d база_данных
После подключения вводится сам запрос. Результат содержит полный набор технических сведений, которые позволяют проверить соответствие серверной версии требованиям проекта или сторонних модулей.
| Элемент строки | Содержание |
|---|---|
| PostgreSQL X.Y.Z | Точный номер версии сервера |
| OS | Платформа, на которой собран сервер |
| Compiler | Использованный компилятор и параметры сборки |
Определение версии PostgreSQL с помощью psql флага —version
Команда выполняется напрямую в терминале:
psql —version
Для систем, где установлено несколько сборок PostgreSQL, стоит проверить путь к вызываемому бинарному файлу через команду which psql. Это позволяет убедиться, что используется нужная версия клиента.
Просмотр версии PostgreSQL через утилиту pg_config

Утилита pg_config предоставляет сведения о каталоге установки, путях к библиотекам и номере версии. Она входит в пакет серверных и клиентских файлов и доступна в системах, где установлены соответствующие компоненты PostgreSQL.
Для получения версии используется команда:
pg_config —version
- pg_config —bindir – путь к исполняемым файлам, помогает определить, какая сборка используется при запуске вспомогательных утилит;
- pg_config —includedir – каталог заголовочных файлов, важен при компиляции расширений;
- pg_config —libdir – путь к библиотекам, по которым можно сопоставить версию, если в системе установлено несколько экземпляров;
- pg_config —configure – параметры конфигурации сборки, позволяющие уточнить доступные возможности.
При наличии нескольких установок PostgreSQL стоит явно указывать полный путь к pg_config, чтобы получить данные от нужной версии и избежать путаницы между пакетами разных репозиториев.
Получение информации о версии PostgreSQL в системных пакетах Linux
Системные менеджеры пакетов позволяют проверить установленную версию PostgreSQL без запуска сервера и без обращения к psql. Это полезно при аудите окружений, где развернуто несколько сборок, либо при диагностике после обновлений.
В дистрибутивах на базе Debian используется команда:
apt list —installed | grep postgresql
В CentOS, RHEL и других RPM-системах применяется:
rpm -qa | grep postgresql
Пакеты содержат номер сборки и информацию о наборе компонентов: клиент, сервер, библиотеки.
Для уточнения версии службы можно проверить состояние установленного экземпляра:
systemctl status postgresql@X.Y-main.service
Строка с путём бинарного файла указывает на каталог, в котором развернута конкретная сборка. Такой подход помогает убедиться, что версия совпадает с той, что числится в пакетной базе, особенно при смешанных установках из официальных репозиториев и внешних хранилищ.
Проверка версии PostgreSQL в Windows через свойства службы
В Windows сведения о версии можно получить через параметры установленной службы PostgreSQL. Такой способ удобен, когда сервер работает в фоновом режиме и нет прямого доступа к psql.
Окно управления службами открывается командой:
services.msc
В списке служб отображаются элементы вида postgresql-X.Y. Цифры после названия соответствуют версии установленного экземпляра.
- Откройте свойства нужной службы двойным щелчком.
- В поле «Путь к исполняемому файлу» указан путь к каталогу установки сервера.
- Имя каталога обычно содержит номер версии, что позволяет быстро определить используемую сборку.
- Если сервер установлен через EnterpriseDB, путь может отличаться, но версия по-прежнему присутствует в названии папки bin.
При наличии нескольких служб PostgreSQL проверка путей помогает определить, какая из них активна и какой номер версии соответствует запущенному экземпляру.
Выяснение версии PostgreSQL внутри Docker-контейнера
Для контейнеризированных инстансов PostgreSQL версия сервера определяется внутри контейнера, поскольку клиентские утилиты хоста могут отличаться от установленных внутри образа.
Подключение к контейнеру выполняется командой:
docker exec -it имя_контейнера bash
После входа можно использовать стандартный запрос в psql:
psql -U имя_пользователя -d база_данных -c «SELECT version();»
Альтернативно, можно получить номер версии напрямую из образа при запуске:
docker run —rm postgres:X.Y.Z postgres —version
Эта команда позволяет проверить, какая сборка PostgreSQL будет установлена в контейнере без запуска полноценного сервера.
При работе с несколькими контейнерами рекомендуется использовать явное указание имени или ID контейнера и проверять путь к исполняемым файлам PostgreSQL, чтобы исключить несоответствие версий между образами.
Определение версии PostgreSQL в приложениях через параметры подключения

Некоторые приложения позволяют узнать версию PostgreSQL напрямую через API или драйверы, используемые для подключения к базе. Это помогает проверить совместимость кода с конкретной сборкой сервера без запуска дополнительных утилит.
В JDBC для Java используется метод:
connection.getMetaData().getDatabaseProductVersion()
Он возвращает строку с номером версии сервера PostgreSQL, а также дополнительные сведения о сборке.
В Python с использованием psycopg2 можно выполнить запрос:
cur.execute(«SELECT version();»)
Результат можно сохранить в переменную и использовать для логирования или проверки условий запуска скрипта.
В .NET через Npgsql применяется свойство:
conn.PostgreSqlVersion
Эти методы позволяют интегрировать проверку версии в процессы развертывания, миграции или тестирования, исключая необходимость отдельного доступа к psql или системным утилитам.
Вопрос-ответ:
Как быстро узнать версию PostgreSQL без подключения к базе?
Для быстрой проверки версии на уровне клиента можно использовать команду в терминале: psql —version. Она выводит номер установленного клиента psql, что позволяет убедиться, какая сборка доступна для работы. Этот метод не требует доступа к серверу и полезен при аудите установленных инструментов.
Можно ли определить версию PostgreSQL изнутри Docker-контейнера?
Да, подключившись к контейнеру с помощью команды docker exec -it имя_контейнера bash, можно выполнить запрос SELECT version(); в psql. Также можно проверить версию при запуске контейнера напрямую: docker run —rm postgres:X.Y.Z postgres —version. Это позволяет узнать номер сборки, платформу и компилятор, не заходя в полноценный сервер.
Как получить версию PostgreSQL через системные пакеты Linux?
В Debian-подобных дистрибутивах используется apt list —installed | grep postgresql, а в RPM-системах — rpm -qa | grep postgresql. Вывод показывает установленные пакеты и номера сборок, что позволяет проверить соответствие версий клиентских и серверных компонентов. Дополнительно можно уточнить путь к активной службе через systemctl status postgresql@X.Y-main.service.
Можно ли узнать версию PostgreSQL через свойства службы в Windows?
Да, откройте services.msc, найдите службу postgresql-X.Y и откройте её свойства. В поле «Путь к исполняемому файлу» указан каталог установки, где обычно присутствует номер версии. Этот способ позволяет проверить, какая сборка сервера запущена, без использования командной строки.
Как определить версию PostgreSQL в приложении на Python или Java?
В Python с библиотекой psycopg2 выполняется запрос cur.execute(«SELECT version();»), после чего результат сохраняется в переменную. В Java через JDBC можно использовать connection.getMetaData().getDatabaseProductVersion(). Эти методы возвращают номер сервера, что позволяет проверять совместимость кода с конкретной сборкой PostgreSQL.
