2012-07-09 14 views

risposta

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

ho guardato nello script che ho usato che ha creato il modello. C'era la riga 'psql -d postgres -c" UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis'; "'. – dbkaplun

+0

Ciò causa ulteriori problemi. Ho fatto un aggiornamento da 9.1 a 9.2 su ubuntu. Questo ha creato template1 implicitamente. Ho quindi eseguito il comando e sembra funzionare. Tuttavia, ora ho installato phpPgAdmin e non riesco ad accedere, dice: 'FATAL: database "template1" inesistente' – hek2mgl

+0

Per ricreare template1: 'creare modello template1 template1 database;' 'UPDATE pg_database SET datistemplate = 'true 'WHERE datname =' template1 '; ' Vedere anche: http://pgsql.inb4.se/2009/april/rebuild-template1.html –

4

È possibile utilizzare il comando alter database. Molto più semplice e più sicuro dei metadati sconvolgenti.

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

Questa soluzione funziona ed è molto meno complicata della soluzione selezionata. – Brad

+1

Questo è> = 9.5 solo .. – amoe

+0

@amoe Ottimo posto. Modificato per aggiungere il link alla documentazione – Mokadillion

Problemi correlati