Re: drop database / create database / data still here ?

From: Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com>
To: Mitch Collinsworth <mitch(at)ccmr(dot)cornell(dot)edu>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: drop database / create database / data still here ?
Date: 2010-04-20 16:25:41
Message-ID: p2mdcc563d11004200925pabd157f5jcd3d04c2fa74813b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Tue, Apr 20, 2010 at 10:06 AM, Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com> wrote:
> On Tue, Apr 13, 2010 at 12:16 PM, Mitch Collinsworth
> <mitch(at)ccmr(dot)cornell(dot)edu> wrote:
>>
>> Hi Folks,
>>
>> I thought I understood how this worked, but now it's baffling me.
>> I want to drop a database named coral from my test server and load
>> a fresh dump of it from my production server.  This has worked when
>> I've done it before, but now it's giving me fits.  Here's an
>> example:
>>
>> coral=# \c postgres
>> You are now connected to database "postgres".
>> postgres=# drop database coral;
>> DROP DATABASE
>> postgres=# create database coral;
>> CREATE DATABASE
>> postgres=# \c coral
>> You are now connected to database "coral".
>> coral=# \dt *.*
>>                           List of relations
>>       Schema       |              Name              | Type  |  Owner
>> --------------------+--------------------------------+-------+----------
>>  accmgr             | acct_rate                      | table | accmgr
>>  accmgr             | acct_rate_working              | table | accmgr
>>  accmgr             | acct_sum                       | table | accmgr
>>  accmgr             | acct_sum_raw                   | table | accmgr
>
> I'm pretty sure that at some time you accidentally created those
> tables in template1 and now you're getting them every time you create
> a database.  Clean out template1 and things should be ok.

Note that if you have thousands of objects in template1, you can drop
it and recreate it from template0 like so:

update pg_database set datistemplate=false where datname='template1';
drop database template1;
create database template1 with template template0;
update pg_database set datistemplate=true where datname='template1';
\c template1
vacuum freeze;

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Tom Lane 2010-04-20 16:43:57 Re: pg_restore -j
Previous Message Scott Marlowe 2010-04-20 16:06:25 Re: drop database / create database / data still here ?