31.16. Файл соединений служб
Файл соединений служб позволяет связать параметры соединений libpq с одним именем службы. Затем это имя службы можно задать в строке подключения libpq и будут применены все связанные с ним параметры. Это позволяет модифицировать параметры соединений, обходясь без перекомпиляции приложения, использующего libpq. Имя службы можно также задать в переменной окружения PGSERVICE
.
Имена служб могут быть определены либо в служебном файле каждого пользователя, либо в общесистемном файле. Если одно и то же имя службы существует как в пользовательском, так и в системном файле, пользовательский файл имеет приоритет. По умолчанию служебный файл пользователя называется ~/.pg_service.conf
. В Microsoft Windows этот файл называется %APPDATA%\postgresql\pg_service.conf
(где %APPDATA%
обозначает каталог данных приложений (Application Data) в профиле пользователя). Имя файла также можно задать в переменной окружения PGSERVICEFILE
. Общесистемный файл называется pg_service.conf
. По умолчанию он ищется в каталоге etc
установки PostgreSQL (используйте pg_config --sysconfdir
, чтобы точно установить этот каталог). Можно указать другой каталог, но не другое имя файла, задав переменную окружения PGSYSCONFDIR
.
В любом служебном файле используется формат «INI-файлов», в котором имя раздела задаёт имя службы, а параметры внутри — параметры соединения; их список приведён в Подразделе 31.1.2. Например:
# комментарий [mydb] host=somehost port=5433 user=admin
Пример такого файла можно найти в каталоге установки PostgreSQL в share/pg_service.conf.sample
.
Параметры подключения, полученные из служебного файла, объединяются с параметрами, полученными из других источников. Значение в этом файле переопределяет соответствующую переменную окружения и, в свою очередь, может быть изменён значением, указанным непосредственно в строке подключения. Например, используя указанный выше служебный файл, строка подключения service=mydb port=5434
будет использовать сервер somehost
, порт 5434
, пользователя admin
и другие параметры, установленные переменными окружения или встроенными значениями по умолчанию.