接続サービスファイルにより、libpq接続パラメータをひとつのサービス名に関連付けることができます。
サービス名は、libpq接続文字列によって指定され、関連付けられた設定が利用されます。
これは、接続パラメータをlibpqを使用するアプリケーションの再コンパイルをせずに修正できるというものです。
サービス名はPGSERVICE
環境変数を利用することで使用できます。
サービス名は、ユーザ単位のサービスファイルまたはシステム全体のファイルのいずれかで定義できます。
ユーザとシステムファイルの両方に同じサービス名が存在する場合は、ユーザファイルが優先されます。
デフォルトでは、ユーザ単位のサービスファイルは~/.pg_service.conf
にあります。
Microsoft Windowsでは、%APPDATA%\postgresql\.pg_service.conf
という名前です(%APPDATA%
は、ユーザプロファイル内のApplication Dataサブディレクトリです)。
これは環境変数PGSERVICEFILE
を設定することで上書きできます。
システム全体のファイルはpg_service.conf
という名前です。
デフォルトでは、PostgreSQLインストールのetc
ディレクトリに検索されます(このディレクトリを正確に識別するにはpg_config--sysconfdir
を使用します)。
環境変数PGSYSCONFDIR
を設定することで、別のディレクトリを指定できますが、異なるファイル名は指定できません。
どちらのサービスファイルも「INIファイル」書式を使用します。 セクション名がサービス名となり、パラメータが接続パラメータです。 32.1.2のリストを参照してください。 以下に例を示します。
# comment [mydb] host=somehost port=5433 user=admin
例となるファイルがPostgreSQLインストールのshare/pg_service.conf.sample
にあります。
サービスファイルから取得された接続パラメータは、他のソースから取得されたパラメータと組み合わされます。
サービスファイルの設定は、対応する環境変数を上書きし、接続文字列で直接指定された値によって上書きすることができます。
たとえば、上記のサービスファイルを使用すると、接続文字列service=mydb port=5434
は、hostsomehost
、port5434
、useradmin
、および環境変数または組み込みデフォルトで設定されたその他のパラメータを使用します。