Non è a causa dell'implementazione del driver, è PostgreSQL stesso. È lo stesso con qualsiasi altra lingua o driver.
Un client deve essere connesso a un database per fare qualsiasi cosa, incluso un CREATE DATABASE
. Oltre a postgres
database, template1
viene spesso utilizzato anche per questo scopo.
Quindi, poiché devi connetterti al database appena creato per creare oggetti al suo interno, non c'è modo di evitare di aprire un'altra connessione.
Insomma, quello che stai facendo non si può semplificare, è già ottimale.