Is renaming a database easy or dangerous

Started by Hadley Willanabout 23 years ago4 messagesgeneral
Jump to latest
#1Hadley Willan
hadley.willan@deeperdesign.co.nz

Hello,
I'd like to rename one of my databases. Is it is simple as changing
the datname field in the pg_databases table?

If so, is it done through ALTER database or a SQL update?

Thank You.
--
Hadley Willan > Systems Development > Deeper Design Limited. +64(7)377-3328
hadley.willan@deeperdesign.co.nz > www.deeperdesign.com > +64(21)-28-41-463
Level 1, 4 Tamamutu St, PO Box 90, TAUPO 2730, New Zealand.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Hadley Willan (#1)
Re: Is renaming a database easy or dangerous

Hadley Willan <hadley.willan@deeperdesign.co.nz> writes:

I'd like to rename one of my databases. Is it is simple as changing
the datname field in the pg_databases table?
If so, is it done through ALTER database or a SQL update?

There is no ALTER DATABASE command for this. I believe that since 7.1
you can get away with an UPDATE on the pg_database row, with a couple of
caveats:

* It's unwise to do this while there are any backends connected to the
target database. I'm not sure whether they'd get seriously confused
because their database changed name, but you don't want to find out the
hard way.

* You will have to issue a CHECKPOINT (or wait for one to occur
automatically) before the change will be visible to incoming new
connections. A "vacuum pg_database" command before checkpointing might
be helpful as well, though I think it's probably not necessary in most
cases.

regards, tom lane

#3scott.marlowe
scott.marlowe@ihs.com
In reply to: Hadley Willan (#1)
Re: Is renaming a database easy or dangerous

On 27 Feb 2003, Hadley Willan wrote:

Hello,
I'd like to rename one of my databases. Is it is simple as changing
the datname field in the pg_databases table?

If so, is it done through ALTER database or a SQL update?

The way I do it is:

# createdb newdb
# pg_dump olddb|psql -e newdb
... check to make sure it's all there working, then...
# dropdb olddb

#4Bruce Momjian
bruce@momjian.us
In reply to: scott.marlowe (#3)
Re: Is renaming a database easy or dangerous

scott.marlowe wrote:

On 27 Feb 2003, Hadley Willan wrote:

Hello,
I'd like to rename one of my databases. Is it is simple as changing
the datname field in the pg_databases table?

If so, is it done through ALTER database or a SQL update?

The way I do it is:

# createdb newdb
# pg_dump olddb|psql -e newdb
... check to make sure it's all there working, then...
# dropdb olddb

The coolest way I have seen it done is to do CREATE DATABASE with
TEMPLATE old_dbname, then drop the old database.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073