web-dev-qa-db-fra.com

Comment supprimer une base de données de modèles de PostgreSQL?

postgres=# DROP DATABASE template_postgis;
ERROR:  cannot drop a template database

http://www.postgresql.org/docs/9.1/static/manage-ag-templatedbs.html donne l'impression que si je mets template_postgis.datistemplate = false, Je pourrai le supprimer, mais je ne sais pas comment régler cela.

49
dbkaplun
postgres=# UPDATE pg_database SET datistemplate='false' WHERE datname='template_postgis';
UPDATE 1
postgres=# DROP DATABASE template_postgis;
DROP DATABASE
postgres=# 
77
dbkaplun

Vous pouvez utiliser la commande alter database. Beaucoup plus simple et plus sûr que de bouleverser les métadonnées.

postgres=# create database tempDB is_template true;
CREATE DATABASE
postgres=# drop database tempDB;
ERROR:  cannot drop a template database
postgres=# alter database tempDB is_template false;
ALTER DATABASE
postgres=# drop database tempDB;
DROP DATABASE
postgres=# 

Documentation

13
VynlJunkie