Utilisation du fichier pg_service.conf pour se connecter à PostgtreSQL
Depuis la version 8.1 il existe une nouvelle méthode de connexion des applications qui se base sur la libpq utilisant un nom de service.
Auparavant on utilisait une chaine de connexion qui parfois était compilé avec les informations en dur
host=localhost user=toto password=tata dbname=drupal port=5432
la méthode utilisant la notion de service est beaucoup plus simple, il suffit de remplacer la chaine précédente par :
service=drupal
Il faut ensuite renseigner le fichier pg_service.conf avec les valeurs de la chaine précédente, le nom du service est placé entre [...].
#. Commentaire du service DRUPAL
[drupal]
host=localhost
user=toto
password=tata
dbname=drupal
port=5432
si l'un des paramètres venait à changer il est plus simple d'ajuster le fichier pg_service.conf
il est possible d'indiquer l'emplacement de ce fichier grâce à la variable d'environnement PGSYSCONFDIR
par exemple sous Linux
$ PGSYSCONFDIR=/etc/postgresql
$ export PGSYSCONFDIR
Ou sous Windows
set PGSYSCONFDIR="C:\Program Files\PostgreSQL\8.2"
J'ai crée dans ce répertoire un sous dossier etc dans lequel j'ai mis le fichier pg_service.conf.
Pour vérifier que cela fonctionne avec psql, faite comme ci dessous
Sous Linux
$ PGSERVICE=drupal
$ export PGSERVICE
$ psql
Sous Windows
set PGSERVICE=drupal
psql
La variable d'environnement PGSERVICE contient le nom du service auquel l'on souhaite se connecter, comme l'on exécute psql sans aucun paramètre celui regarde si cette variable d'environnement existe et s'y connecte.