Re: pg_restore -t table doesn't restore PKEY

From: "Jan C(dot)" <chaljan(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: pg_restore -t table doesn't restore PKEY
Date: 2010-10-29 14:58:28
Message-ID: AANLkTinfXJQcdAG+MM958+YOiWS6VxT0O2csWz1zRT44@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

So I'd have to do:

pg_restore  -l /tmp/mydump | grep my_table  > /tmp/mytable_lines
pg_restore  --format=c -C -U myUser -d myDB /tmp/mydump -L /tmp/mytable_lines

It looks like I have to use "grep" to look for my table and not "-t
my_table" because the PKEY constraint is NOT listed when I do
pg_restore  -l /tmp/mydump -t my_table

In any case, shouldn't the documentation describe more the pg_restore
-t command ? It's really misleading and one can discover this only by
running into problems.

Thanks for your help,

Jan

On Fri, Oct 29, 2010 at 4:30 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> "Jan C." <chaljan(at)gmail(dot)com> writes:
>> I have dump of an entire database and I'm trying to restore only one named
>> table:
>
>>> pg_restore  --format=c -C -U myUser -d myDB /tmp/mydump -t my_table
>
>> The command completes without errors/warnings but the resulting table in the
>> database is missing the PKEY constraint !
>
> Use pg_restore -l, then extract the lines relevant to your table, then
> pg_restore -L to restore just the named items.
>
> I think there's a TODO to make pg_restore's -t switch work more like
> pg_dump's, but at the moment they're really quite different animals.
> pg_restore doesn't have any logic about "oh, if he asked for this
> item I bet he wants that one too".
>
>                        regards, tom lane
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Cole, Tavin 2010-10-29 16:08:31 xor(bytea,bytea)
Previous Message Merlin Moncure 2010-10-29 14:49:14 Re: Can Postgres Not Do This Safely ?!?