2012-07-09 26 views

答えて

72
postgres=# UPDATE pg_database SET datistemplate='false' WHERE datname='template_postgis'; 
UPDATE 1 
postgres=# DROP DATABASE template_postgis; 
DROP DATABASE 
postgres=# 
+0

私はテンプレートを作成し、私が使用するスクリプトに見えました。 'psql -d postgres -c"という行がありました。UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis'; " – dbkaplun

+0

これはさらに問題を引き起こします。私は9.1から9.2へのアップグレードをubuntuで行った。これにより暗黙的にテンプレート1が作成されました。私はあなたの命令を実行し、それは動作するようです。しかし、今はphpPgAdminをインストールしましたがログインできません: 'FATAL:database' template1は存在しません ' – hek2mgl

+0

テンプレート1を再作成するには 'データベーステンプレート1テンプレートをテンプレート0に作成してください' ' UPDATE pg_database SET datistemplate = 'true 'WHERE datname =' template1 ';' 参照:http://pgsql.inb4.se/2009/april/rebuild-template1.html –

4

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

Documentation

+0

このソリューションは、選択したソリューションよりもはるかに複雑であり、機能します。 – Brad

+1

これは> = 9.5のみです.. – amoe

+0

@amoe大きなスポット。編集してドキュメントのリンクを追加する – Mokadillion

関連する問題