web-dev-qa-db-ja.com

PostgreSQLからテンプレートデータベースを削除するにはどうすればよいですか?

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

http://www.postgresql.org/docs/9.1/static/manage-ag-templatedbs.html は、template_postgis.datistemplate = false、私はそれをドロップすることができますが、私はそれを設定する方法がわかりません。

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

Alter databaseコマンドを使用できます。動揺するメタデータよりもはるかに簡単で安全です。

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=# 

ドキュメント

13
VynlJunkie