On Wed, 4 Jan 2006 21:00:25 -0800, Benjamin Smith <lists@benjamindsmith.com> wrote:
> Is there a way to put a limit on pg_dump, so that it doesn't dump ALL data,
> but that matching a particular query?
>
> Something like:
>
> pg_dump -da --attribute-inserts -t "customers" \
> --matching-query="select * from customers where id=11";
>
> I'd like to selectively dump information from a query, but using the output
> format from pg_dump so that it can be used to create a (partial) database.
>
> Can this sort of thing be done?
Not directly with pg_dump.
You could create a table (create table customers_1 as select * from
customers where id=11) and dump that but remember to change the
tablename in the dump file or after loading it. You dont get any
pk/fk/indexes on the table definition.
You could also use copy to stdout/stdin.
eg dump
psql -d dbname -c "create temp table dump as select * from customers
where id=11; copy dump to stdout;" >dumpfile
eg restore
psql -d newdb -c "copy customers from stdin" <dumpfile
You might need to play around with supplying username/password.
klint.
+---------------------------------------+-----------------+
: Klint Gore : "Non rhyming :
: EMail : kg@kgb.une.edu.au : slang - the :
: Snail : A.B.R.I. : possibilities :
: Mail University of New England : are useless" :
: Armidale NSW 2351 Australia : L.J.J. :
: Fax : +61 2 6772 5376 : :
+---------------------------------------+-----------------+