From: | Klint Gore <kg(at)kgb(dot)une(dot)edu(dot)au> |
---|---|
To: | lists(at)benjamindsmith(dot)com |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Putting restrictions on pg_dump? |
Date: | 2006-01-05 07:35:10 |
Message-ID: | 43BCCC2E14A.48EDKG@129.180.47.120 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Wed, 4 Jan 2006 21:00:25 -0800, Benjamin Smith <lists(at)benjamindsmith(dot)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(at)kgb(dot)une(dot)edu(dot)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 : :
+---------------------------------------+-----------------+
From | Date | Subject | |
---|---|---|---|
Next Message | Bruno Wolff III | 2006-01-05 07:37:28 | Re: How to search? |
Previous Message | ctobini | 2006-01-05 07:31:05 | Can't connect to postgresql using 'psql -d database -U user -W' |