PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

postgresql createdb et CREATE DATABASE produisent une base de données non vide. c'est quoi la fourchette ?

Résumant de la docs template0 est essentiellement une base de données système propre et vierge, tandis que template1 sert de modèle pour toute nouvelle base de données créée avec la commande createdb ou créer une base de données à partir d'une invite psql (il n'y a pas de différence effective).

Il est probable que certaines tables se cachent dans template1, c'est pourquoi elles réapparaissent sans cesse sur createdb. Vous pouvez résoudre ce problème en supprimant template1 et en le recréant à partir de template0.

createdb -T template0 template1 

La base de données template1 peut être extrêmement utile. J'utilise beaucoup Postgis, j'ai donc toutes les fonctions et tables liées à celle-ci installées dans template1, donc toute nouvelle base de données que je crée est immédiatement activée dans l'espace.

MODIFIER . Comme indiqué dans la documentation, mais qu'il convient de souligner, pour supprimer tempate1, vous devez avoir pg_database.datistemplate =false set.