am Tue, dem 27.02.2007, um 17:44:06 +0100 mailte Markus Schulz folgendes:
> Hello,
>
> i have some trouble with dumping and restoring a database with
> postgresql 7.4.7-6sarge4 (debian sarge).
Is the new database also 7.4? Why not 8.1 oder 8.2?
>
> Some tables have plpgsql-functions as DEFAULT contraints. But these
> functions are dumped after the CREATE TABLE command. Now these tables
> can't be created on restore.
IIRC a know issue with 7.x, but solved (i hope...) in 8.x. If you
upgrade to such a version, you should use the pg_dump(all) from this
against the old database.
>
> If i'm dumping only structure and import twice in a new and empty
> database (this works), i can't restore the data-only dump. Cause in the
> data-only dump the table order was wrong in respect to FOREIGN KEY
> constraints and the constraints are now active (instead of a full-dump,
> where constraints will be created after data was inserted).
>
> Why DEFAULT (and NOT NULL) constraints would'nt be added after data
> insertion? (like Primary-Key and Foreign-Key)
>
> What can i do to enforce the order of plpgsql functions prior to all
> table structures?
You can use pg_restore with -l to generate a listfile for all objects in
the database. Then you can reorder this ($EDITOR) and then use -L to use
this ordered listfile to enforce the right order of objects. I hope this
helps you.
(man pg_restore)
Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net