Excluding schema from backup

Started by Stéphane Schildknechtover 19 years ago3 messagesgeneral
Jump to latest
#1Stéphane Schildknecht
stephane.schildknecht@postgresqlfr.org

Hi all,

I tried the knewly introduced feature allowing one to exclude a schema
from a backup with pg_dump, but I got a
really strange error :

pg_dump -U postgres MYDB -N "_MYDB" gives me a dump including that schema.

I then tried pg_dump -U postgres MYDB -n "_MYDB" and then got "pg_dump:
No matching schemas were found"

Dumping the only public schema works. But, by doing so, I miss some
other schema I really need.

Is there a limitation I didn't catch ?

Thanks by advance.

St�phane Schildknecht

#2Bill Moran
wmoran@collaborativefusion.com
In reply to: Stéphane Schildknecht (#1)
Re: Excluding schema from backup

In response to "Stéphane Schildknecht" <stephane.schildknecht@postgresqlfr.org>:

Hi all,

I tried the knewly introduced feature allowing one to exclude a schema
from a backup with pg_dump, but I got a
really strange error :

pg_dump -U postgres MYDB -N "_MYDB" gives me a dump including that schema.

I then tried pg_dump -U postgres MYDB -n "_MYDB" and then got "pg_dump:
No matching schemas were found"

Dumping the only public schema works. But, by doing so, I miss some
other schema I really need.

Is there a limitation I didn't catch ?

My guess is that you're hitting case-folding issues. Try:

pg_dump -U postgres MYDB -n \"_MYDB\"

--
Bill Moran
Collaborative Fusion Inc.

wmoran@collaborativefusion.com
Phone: 412-422-3463x4023

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bill Moran (#2)
Re: Excluding schema from backup

Bill Moran <wmoran@collaborativefusion.com> writes:

In response to "St�phane Schildknecht" <stephane.schildknecht@postgresqlfr.org>:

pg_dump -U postgres MYDB -N "_MYDB" gives me a dump including that schema.

I then tried pg_dump -U postgres MYDB -n "_MYDB" and then got "pg_dump:
No matching schemas were found"

My guess is that you're hitting case-folding issues. Try:
pg_dump -U postgres MYDB -n \"_MYDB\"

Yeah, see the last example in the 8.2 pg_dump reference page:

To specify an upper-case or mixed-case name in -t and related
switches, you need to double-quote the name; else it will be folded to
lower case (see Patterns). But double quotes are special to the shell,
so in turn they must be quoted. Thus, to dump a single table with a
mixed-case name, you need something like

$ pg_dump -t '"MixedCaseName"' mydb > mytab.sql

regards, tom lane