Re: dumping table contents in a sensible order

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Chris Withers <chris(at)simplistix(dot)co(dot)uk>, pgsql-general(at)postgresql(dot)org
Subject: Re: dumping table contents in a sensible order
Date: 2016-11-16 01:05:21
Message-ID: 07a80bb6-9750-2d4a-b39d-a0040e101903@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 11/15/2016 02:56 PM, Chris Withers wrote:
> Hi All,
>
> I have a database that I want to dump three tables from, for use in
> development. They form a subset of the data, so I was dumping like this:
>
> pg_dump thedatabase --inserts -t table_one -t depends_on_table_one -t
> depends_on_previous_two > dump.sql
>
> However, when I try to load this using the following:
>
> psql thedatabase_dev < dump.sql
>
> I get the following:
>
> SET
> ERROR: unrecognized configuration parameter "lock_timeout"
> SET
> SET
> SET
> SET
> ERROR: unrecognized configuration parameter "row_security"
> SET
> SET
> SET
> ERROR: relation "table_one" already exists
> ALTER TABLE
> ERROR: relation "depends_on_previous_two" already exists
> ALTER TABLE
> ERROR: relation "depends_on_previous_two_id_seq" already exists

Use the -c switch as previously suggested.

> ALTER TABLE
> ALTER SEQUENCE
> ALTER TABLE
> INSERT 0 1
> ...
> INSERT 0 1
> ERROR: insert or update on table "table_one" violates foreign key
> constraint "table_one_parent_id_fkey"
> DETAIL: Key (parent_id)=(xxx) is not present in table "table_one".
>
> So, the problem appears to be that table_one is self-referential by way
> of a parent_id field.
>
> How can I either:
>
> - dump the table in an insertable order?

Don't use --inserts, instead let the data be entered via COPY(the
default) which does it a single transaction.

> - have the load only apply the foreign key constraint at the end of each
> table import?

See previous suggestion.

>
> cheers,
>
> Chris
>
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rich Shepard 2016-11-16 01:06:37 Re: Upgrade from 9.5.4 to 9.6.1
Previous Message John R Pierce 2016-11-16 01:01:24 Re: Upgrade from 9.5.4 to 9.6.1