Thread: BUG #5698: pg_dump (8.3.11) does not consider constrains
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?
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
From
Johannes.Meidert@rohde-schwarz.com
Date:
> 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