Обсуждение: BUG #5698: pg_dump (8.3.11) does not consider constrains

Поиск
Список
Период
Сортировка

BUG #5698: pg_dump (8.3.11) does not consider constrains

От
"Johannes Meidert"
Дата:
The following bug has been logged online:

Bug reference:      5698
Logged by:          Johannes Meidert
Email address:      johannes.meider@rohde-schwarz.com
PostgreSQL version: 8.3.11, 9.0.1
Operating system:   Windows
Description:        pg_dump (8.3.11) does not consider constrains
Details:

pg_dump dumps tables in the worng order for constraints (table a refrences
key of table b, but table a is dumped first). As a consequence an import
fails, because the required foreign key (in table b) is missing when table a
is imported.
Work around: import twice.
Is this fixed in version 9.0?

Re: BUG #5698: pg_dump (8.3.11) does not consider constrains

От
Joshua Tolley
Дата:
On Fri, Oct 08, 2010 at 11:46:31AM +0000, Johannes Meidert wrote:
> pg_dump dumps tables in the worng order for constraints (table a refrences
> key of table b, but table a is dumped first). As a consequence an import
> fails, because the required foreign key (in table b) is missing when table a
> is imported.
> Work around: import twice.
> Is this fixed in version 9.0?

Could you give details of exactly what pg_dump commands you used? By default
pg_dump dumps tables and data without any constraints first, and then adds
constraints in a valid order. If, however, you do something like dump the
schema first, and then dump data into that schema, there's little pg_dump can
do to avoid problems such as you describe.

--
Joshua Tolley / eggyknap
End Point Corporation
http://www.endpoint.com

Re: BUG #5698: pg_dump (8.3.11) does not consider constrains

От
Johannes.Meidert@rohde-schwarz.com
Дата:
> On Fri, Oct 08, 2010 at 11:46:31AM +0000, Johannes Meidert wrote:
> > pg_dump dumps tables in the worng order for constraints (table a
refrences
> > key of table b, but table a is dumped first). As a consequence an
import
> > fails, because the required foreign key (in table b) is missing when
table a
> > is imported.
> > Work around: import twice.
> > Is this fixed in version 9.0?
>
> Could you give details of exactly what pg_dump commands you used? By
default
> pg_dump dumps tables and data without any constraints first, and then
adds
> constraints in a valid order. If, however, you do something like dump
the
> schema first, and then dump data into that schema, there's little
pg_dump can
> do to avoid problems such as you describe.
>

Thank you for the explanation.
I dumped with --data-only because my setup creates the tables in advance.
The correct procedure seems to be

if a database exists
        dump db
        import db
else
        create tables