Thread: How to generate drop cascade with pg_dump

How to generate drop cascade with pg_dump

From
Emi Lu
Date:
Hello,

May I know how to generate drop table cascade when pg_dump a schema please?

E.g.,
pg_dump -h db_server -E UTF8   -n schema_name  -U schema_owner --clean 
-d db_name >! ~/a.dmp

In a.dmp, I'd like to get:

drop table t1 cascade;
drop table t2 cascade;
... ...

Only dropping constraints within a schema is not good enough since there 
are dependencies on other schema.

Thanks a lot!
Emi



Re: How to generate drop cascade with pg_dump

From
Adrian Klaver
Date:
On 01/08/2013 01:53 PM, Emi Lu wrote:
> Hello,
>
> May I know how to generate drop table cascade when pg_dump a schema please?
>
> E.g.,
> pg_dump -h db_server -E UTF8   -n schema_name  -U schema_owner --clean
> -d db_name >! ~/a.dmp
>
> In a.dmp, I'd like to get:
>
> drop table t1 cascade;
> drop table t2 cascade;
> ... ...
>
> Only dropping constraints within a schema is not good enough since there
> are dependencies on other schema.

That is a limitation of dumping by schema.

http://www.postgresql.org/docs/9.2/interactive/app-pgdump.html
"Note: When -n is specified, pg_dump makes no attempt to dump any other 
database objects that the selected schema(s) might depend upon. 
Therefore, there is no guarantee that the results of a specific-schema 
dump can be successfully restored by themselves into a clean database.

If you want to reach across schemas you either need to do a whole 
database dump or modify a partial dump or create your own script.

>
> Thanks a lot!
> Emi
>
>


-- 
Adrian Klaver
adrian.klaver@gmail.com