Apparemment, une base de données "postgres" est créée par défaut sur chaque installation de serveur postgresql. Quelqu'un peut-il me dire ou m'indiquer la documentation à quoi elle sert?
Il semble qu’il n’ait pas vraiment de but bien défini. Selon les docs:
La création d'un cluster de bases de données consiste à créer les répertoires dans lesquels les données de la base de données vivront, à générer les tables de catalogue partagées (tables appartenant à l'ensemble du cluster plutôt qu'à une base de données particulière) et à créer les bases de données "template1" et "postgres".
[...]
La base de données postgres est une base de données par défaut destinée à être utilisée par les utilisateurs, les utilitaires et les applications tierces.
(Source: http://www.postgresql.org/docs/current/app-initdb.html )
Lorsqu'une application cliente se connecte à un serveur Postgres, elle doit spécifier la base de données à laquelle elle souhaite se connecter. Si vous ne connaissez pas le nom d'une base de données (dans le cluster desservi par le postmaster auquel vous vous connectez), vous pouvez trouver une liste de noms de bases de données à l'aide de la commande:
psql -l
Lorsque vous exécutez cette commande, psql se connecte au serveur et interroge pg_database pour obtenir une liste des noms de base de données. Toutefois, psql étant une application cliente 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 une base de données template dans ce cas:
psql -l -d template1
Il existe également la base de données template0, votre filet de sécurité lorsque vous bousillez tous les autres.
Le commentaire ci-dessus demandait: "Est-il prudent de supprimer la base de données postgres si vous ne l'utilisez pas?" - CMCDragonkai 22 oct. 16 à 10:37
De la documentation PostgreSQL
Après l’initialisation, un cluster de base de données contiendra une base de données nommée postgres, qui est conçue comme une base de données par défaut à utiliser par les utilitaires, les utilisateurs et les applications tierces. Le serveur de base de données lui-même ne nécessite pas l'existence de la base de données postgres, mais de nombreux utilitaires externes supposent qu'elle existe.
[Remarque: un cluster de bases de données est un ensemble de bases de données gérées par une instance unique d'un serveur de base de données en cours d'exécution.]
Si vous utilisez plusieurs connexions de base de données lors de la création de nouvelles bases de données, toutes les connexions ne peuvent pas être établies avec template1
ou template0
.
Postgresql générera une erreur si d'autres bases de données permettent d'accéder à la base de données source lors de la création de la base de données.
Donc, pour créer de nouvelles bases de données, il est préférable de connecter postgres
.