Lorsqu'une application cliente se connecte à un serveur Postgres, elle doit spécifier à quelle base de données elle souhaite se connecter. Si vous ne connaissez pas le nom d'une base de données (au sein du cluster desservi par le postmaster auquel vous vous connectez), vous pouvez trouver une liste de noms de bases de données avec la commande :
psql -l
Lorsque vous exécutez cette commande, psql se connecte au serveur et demande à pg_database une liste de noms de bases de données. Cependant, puisque psql est une application client Postgres, il ne peut pas se connecter au serveur sans connaître le nom d'au moins une base de données :Catch-22. Ainsi, psql est codé en dur pour se connecter à une base de données nommée "postgres" lorsque vous exécutez psql -l
, mais vous pouvez spécifier un modèle de base de données dans ce cas :
psql -l -d template1