Le search_path permet de un schéma par défaut qui sera ensuite automatiquement rajoutée à chaque table lors des requêtes.
Pour savoir quel est le search_path courant
il suffit de taper :
SHOW search_path;
Par défaut sa valeur est
"$user",public
Modifier le search_path courant
on peut taper la commande suivante :
SET SEARCH_PATH TO mon_schema,public;
Lors d'une requête, PostgreSQL préfixera d'abord par "mon_schema." puis si aucune table n'est trouvée dans le schéma "public."
Cette méthode n'est pas persistante et le search_path sera remis à sa valeur initiale lors d'un redémarrage du serveur de base de données.
Comment attribuer un search_path à un role PostgreSql spécifique ?
Pour conserver le search_path, on doit l'attribuer à un rôle de connexion :
ALTER ROLE mon_utilisateur SET search_path TO mon_schema,public;
Ou, plus finement, à un rôle ET à une base de données :
ALTER ROLE mon_utilisateur IN DATABASE ma_bdd SET search_path TO mon_schema,public;