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.

Comments