Ce n'est pas à cause de l'implémentation du pilote, c'est PostgreSQL lui-même. C'est la même chose avec n'importe quelle autre langue ou pilote.
Un client doit être connecté à une base de données pour faire quoi que ce soit, y compris un CREATE DATABASE
. Outre le postgres
base de données, template1
est souvent utilisé à cette fin également.
Ensuite, puisque vous devez vous connecter à la base de données fraîchement créée pour créer des objets à l'intérieur, il n'y a aucun moyen d'éviter d'ouvrir une autre connexion.
Bref, ce que vous faites ne peut pas être simplifié, c'est déjà optimal.