Wanneer een clienttoepassing verbinding maakt met een Postgres-server, moet deze specificeren met welke database deze verbinding wil maken. Als u de naam van een database niet weet (binnen het cluster dat wordt onderhouden door de postmaster waarmee u verbinding maakt), kunt u een lijst met databasenamen vinden met het commando:
psql -l
Wanneer u die opdracht uitvoert, maakt psql verbinding met de server en vraagt pg_database om een lijst met databasenamen. Omdat psql echter een Postgres-clienttoepassing is, kan het geen verbinding maken met de server zonder de naam van ten minste één database te kennen:Catch-22. Dus psql is hard gecodeerd om verbinding te maken met een database met de naam "postgres" wanneer u psql -l
uitvoert , maar u kunt in dat geval een sjabloondatabase specificeren:
psql -l -d template1