sql >> Base de Datos >  >> RDS >> PostgreSQL

postgresql createdb y CREATE DATABASE producen una base de datos no vacía. que tenedor

Resumiendo de los docs template0 es esencialmente una base de datos del sistema limpia y virgen, mientras que template1 sirve como modelo para cualquier nueva base de datos creada con el comando createdb o crear una base de datos desde un indicador de psql (no hay una diferencia efectiva).

Es probable que tenga algunas tablas al acecho en template1, por lo que siguen apareciendo en createdb. Puede resolver esto eliminando la plantilla 1 y volviéndola a crear a partir de la plantilla 0.

createdb -T template0 template1 

La base de datos template1 puede ser extremadamente útil. Utilizo mucho Postgis, por lo que tengo todas las funciones y tablas relacionadas instaladas en la plantilla 1, por lo que cualquier nueva base de datos que creo se habilita espacialmente de inmediato.

EDITAR . Como se indica en los documentos, pero vale la pena enfatizar, para eliminar tempate1 necesita tener pg_database.datistemplate =false configurado.