Hmmm 8.1 pg_dumpall cannot dump older db's?

Started by Christopher Kings-Lynneover 20 years ago8 messages
#1Christopher Kings-Lynne
chriskl@familyhealth.com.au

I can't seem to dump old db's:

-bash-2.05b$ pg_dumpall -s -h database-dev > dump.sql
Password:
pg_dumpall: could not connect to database "postgres": FATAL: database
"postgres" does not exist

Seems that it is expecting the new 'postgres' database to exist on old
installations?

Chris

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Christopher Kings-Lynne (#1)
Re: Hmmm 8.1 pg_dumpall cannot dump older db's?

Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:

Seems that it is expecting the new 'postgres' database to exist on old
installations?

Ooops :-( Seems like maybe we want it to try postgres and then fall
back to trying template1?

regards, tom lane

#3Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Tom Lane (#2)
Re: Hmmm 8.1 pg_dumpall cannot dump older db's?

Seems that it is expecting the new 'postgres' database to exist on old
installations?

Ooops :-( Seems like maybe we want it to try postgres and then fall
back to trying template1?

No idea :) I haven't followed the new postgres database changes
particularly well...

Chris

#4Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Tom Lane (#2)
Re: Hmmm 8.1 pg_dumpall cannot dump older db's?

Seems that it is expecting the new 'postgres' database to exist on old
installations?

Ooops :-( Seems like maybe we want it to try postgres and then fall
back to trying template1?

Actually, also ONLY assume postgres is a special database if the backend
is 8.1 or higher. We don't want to mess with poor people who have
already created a database called 'postgres' in their installation of
7.4, say...

Chris

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Christopher Kings-Lynne (#4)
Re: Hmmm 8.1 pg_dumpall cannot dump older db's?

Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:

Ooops :-( Seems like maybe we want it to try postgres and then fall
back to trying template1?

Actually, also ONLY assume postgres is a special database if the backend
is 8.1 or higher. We don't want to mess with poor people who have
already created a database called 'postgres' in their installation of
7.4, say...

No, because it's special anyway where the dump will be reloaded. Keep
in mind that the design assumption for pg_dump(all) is always that the
destination database will be current release or higher; frequently the
dump file won't even be parseable by older servers.

The thing that makes this slightly painful is that we can't tell what
version we are dumping *from* until we've connected, and so we cannot
automagically "do the right thing" here. I don't really see any other
way to do it than the try-and-fallback approach.

regards, tom lane

#6Bruno Wolff III
bruno@wolff.to
In reply to: Tom Lane (#5)
Re: Hmmm 8.1 pg_dumpall cannot dump older db's?

On Thu, Jul 07, 2005 at 23:44:44 -0400,
Tom Lane <tgl@sss.pgh.pa.us> wrote:

The thing that makes this slightly painful is that we can't tell what
version we are dumping *from* until we've connected, and so we cannot
automagically "do the right thing" here. I don't really see any other
way to do it than the try-and-fallback approach.

But after falling back to template1, a version check could be made and
if running 8.1 or higher an error message could be displayed.

#7Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruno Wolff III (#6)
Re: Hmmm 8.1 pg_dumpall cannot dump older db's?

Bruno Wolff III <bruno@wolff.to> writes:

But after falling back to template1, a version check could be made and
if running 8.1 or higher an error message could be displayed.

Once we're connected to template1, we might as well just use it ...

regards, tom lane

#8Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#7)
Re: Hmmm 8.1 pg_dumpall cannot dump older db's?

Tom Lane wrote:

Bruno Wolff III <bruno@wolff.to> writes:

But after falling back to template1, a version check could be made and
if running 8.1 or higher an error message could be displayed.

Once we're connected to template1, we might as well just use it ...

Agreed. In any case, I thought that dropping the postgres database was
supposed to be OK if you wanted to work that way. (I also thought
fallback was the way all this was supposed to work anyway).

cheers

andrew