Problems with pg_dump and -t wildcards

Started by Bill Thoenover 17 years ago5 messagesgeneral
Jump to latest
#1Bill Thoen
bthoen@gisnet.com

I'm having some problems with pg_dump and the -t switch. I can't get it
to work using wildcards nor with multiple -t switches. I'm using
PostgreSQL 8.1.5 and trying to dump just a table and its associated
sequence.

As shown below, the table il_sections and the sequence
il_sections_gid_seq both exist in the database spatial1. But neither
pg_dump -Fc -t 'il_sections*' spatial1 > il_plss.dump
nor
pg_dump -Fc -t il_sections -t il_sections_gid_seq spatial1 > il_plss.dump
will work. The former generates the error listed below while the latter
just creates a tiny file with nothing but a couple of comments in it.

Anyone know what's wrong?
- Bill Thoen

Here's what I get:
$ psql -dspatial1
Welcome to psql 8.1.5, the PostgreSQL interactive terminal.
...
spatial1=# \d
List of relations
Schema | Name | Type | Owner
--------+-----------------------+----------+----------
public | US_States_ogc_fid_seq | sequence | bthoen
public | counties | table | bthoen
public | counties_gid_seq | sequence | bthoen
public | geometry_columns | table | postgres
public | il_sections | table | bthoen
public | il_sections_gid_seq | sequence | bthoen
public | spatial_ref_sys | table | postgres
public | states | table | bthoen
(8 rows)

spatial1=# \q
$ pg_dump -Fc -t 'il_section*' spatial1 > il_plss.dump
pg_dump: specified table "il_section*" does not exist

#2Joshua D. Drake
jd@commandprompt.com
In reply to: Bill Thoen (#1)
Re: Problems with pg_dump and -t wildcards

On Fri, 2008-07-25 at 11:36 -0600, Bill Thoen wrote:

I'm having some problems with pg_dump and the -t switch. I can't get it
to work using wildcards nor with multiple -t switches. I'm using
PostgreSQL 8.1.5 and trying to dump just a table and its associated
sequence.

That is because it doesn't work like that. IIRC you can dump exactly one
table with the -t switch.

Sincerely,

Joshua D. Drake

--
The PostgreSQL Company since 1997: http://www.commandprompt.com/
PostgreSQL Community Conference: http://www.postgresqlconference.org/
United States PostgreSQL Association: http://www.postgresql.us/
Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Joshua D. Drake (#2)
Re: Problems with pg_dump and -t wildcards

"Joshua D. Drake" <jd@commandprompt.com> writes:

On Fri, 2008-07-25 at 11:36 -0600, Bill Thoen wrote:

I'm having some problems with pg_dump and the -t switch. I can't get it
to work using wildcards nor with multiple -t switches. I'm using
PostgreSQL 8.1.5 and trying to dump just a table and its associated
sequence.

That is because it doesn't work like that. IIRC you can dump exactly one
table with the -t switch.

-t does take a wildcard pattern ... in 8.2 and later. I don't believe
8.1 handled more than one -t switch, either.

regards, tom lane

#4Andrew Sullivan
ajs@commandprompt.com
In reply to: Bill Thoen (#1)
Re: Problems with pg_dump and -t wildcards

On Fri, Jul 25, 2008 at 11:36:14AM -0600, Bill Thoen wrote:

I'm having some problems with pg_dump and the -t switch. I can't get it to
work using wildcards nor with multiple -t switches. I'm using PostgreSQL
8.1.5 and trying to dump just a table and its associated sequence.

You can't do that. The ability to specify multiple -t switches came
in 8.2.

You can work around this if you have a custom dump format, by just
restoring the tables you want using pg_restore. This is a pretty
hideous workaround, though.

A

--
Andrew Sullivan
ajs@commandprompt.com
+1 503 667 4564 x104
http://www.commandprompt.com/

#5Bill Thoen
bthoen@gisnet.com
In reply to: Tom Lane (#3)
Re: Problems with pg_dump and -t wildcards

Ah ha! I'm reading the wrong docs. Duh...
I guess it's upgrade time!
Thank you.

Tom Lane wrote:

Show quoted text

"Joshua D. Drake" <jd@commandprompt.com> writes:

On Fri, 2008-07-25 at 11:36 -0600, Bill Thoen wrote:

I'm having some problems with pg_dump and the -t switch. I can't get it
to work using wildcards nor with multiple -t switches. I'm using
PostgreSQL 8.1.5 and trying to dump just a table and its associated
sequence.

That is because it doesn't work like that. IIRC you can dump exactly one
table with the -t switch.

-t does take a wildcard pattern ... in 8.2 and later. I don't believe
8.1 handled more than one -t switch, either.

regards, tom lane