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