Re: How to individually list the DDL for all individual data base objects - Mailing list pgsql-general

From François Beausoleil
Subject Re: How to individually list the DDL for all individual data base objects
Date
Msg-id CC331C54-4EAC-4899-BB6C-9E3C8F273501@teksol.info
Whole thread Raw
In response to How to individually list the DDL for all individual data base objects  (Berend Tober <btober@broadstripe.net>)
Responses Re: How to individually list the DDL for all individual data base objects  (Berend Tober <btober@broadstripe.net>)
List pgsql-general
Le 2014-11-24 à 10:14, Berend Tober <btober@broadstripe.net> a écrit :

> Is there a good way to individually list the DDL for all individual data base objects?
>

<snip>

> grep -v '^;' listfile | while read a b c n
>    do
>      a=${a/;}
>      echo $a > f
>      pg_restore -L f -f outputdir/$a dumpfile
>    done
>
> This, as it is, creates a set of files named according to the id number that pg_dump uses to identify each element.
Ideally,I would like the files named after the schema+object it represents. 

Were you aware that pg_restore can restore to STDOUT, and output DDL for only a single named object from a custom dump
file?

$ pg_restore —help
…

  -f, --file=FILENAME      output file name
…
  -t, --table=NAME         restore named table
…

Such that you could run:

$ pg_restore -f public.mytable.sql -t public.mytable whatever.pgdump

Unfortunately, this does not respect dependencies and you may have issues. The --disable-triggers option can alleviate
someof these problems. YMMV. 

Hope that helps!
François



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: How to avoid a GIN recheck condition
Next
From: Alvaro Herrera
Date:
Subject: Re: How to individually list the DDL for all individual data base objects