lundi 21 décembre 2009
J'ai déjà parlé des schémas dans PostgresSQL et je disais que lorsqu'on fait référence à un objet, l'engin le recherchait par défaut dans le schéma public. Or, il est possible de changer cet ordre de recherche pour commencer dans un autre schéma. Ceci est dû à la configuration de la variable search_path.
Pour voir l'ordre actuel par défaut :
SHOW search_path;On changera l'ordre ainsi :
SET search_path TO myschema, public;Certains se poseront la question à savoir ce qu'on peut faire si nous avons plus d'un schéma utilisateur. Il suffit de les lister en les séparant par des virgules :
SET search_path TO myschema1, myschema2, public, myschema3;Bonne pratique à adopter
Pour éviter l'ambiguité, ne prenez pas de chance, préfixez toujours vos objets dans les requêtes avec le nom du schéma. Non seulement vous aurez un léger gain de performance car l'engin n'aura pas à résoudre le chemin puisqu'il sera explicite, mais vous serez certain que si votre application est installée sur un autre serveur avec une configuration différente, il n'y aura pas de conflits.