Re: pg_restore option --clean

Guillaume Lelarge <guillaume@lelarge.info>

From: Guillaume Lelarge <guillaume@lelarge.info>
To: Fabrice Chapuis <fabrice636861@gmail.com>
Cc: M Sarwar <sarwarmd02@outlook.com>, "pgsql-admin@lists.postgresql.org" <pgsql-admin@lists.postgresql.org>
Date: 2024-02-21T14:35:14Z
Lists: pgsql-hackers
Hi,

Le mer. 21 févr. 2024 à 15:01, Fabrice Chapuis <fabrice636861@gmail.com> a
écrit :

> But it does not work for the structure
> # CONSTRAINT test FOREIGN KEY (id_tab_key) REFERENCES tab(id) ON DELETE
> cascade ON UPDATE CASCADE
>
> ERROR:  cannot drop table tab because other objects depend on it
>
>
Yeah, ON DELETE and ON CASCADE are not the answer to your question.

pg_restore won't drop objects in cascade. There's no option for that. I'd
guess the reason is that --clean only cleans the object it will restore. If
other objects depend on it, pg_restore has no way to know how to recreate
them, and you would end up with a not completely restored database.

Regards.


> Regards,
>
> Fabrice
>
> On Wed, Feb 21, 2024 at 12:47 PM M Sarwar <sarwarmd02@outlook.com> wrote:
>
>> Look around for
>>
>> ALTER TABLE TABLE-NAME
>>   ADD constraint fk-name foreign key col-name refers to tab-name (
>> col-name )
>>      on UPDATE cascase
>>    on DELETE CASCADE
>> ;
>> Good luck,
>> Sarwar
>>
>> ------------------------------
>> *From:* Fabrice Chapuis <fabrice636861@gmail.com>
>> *Sent:* Wednesday, February 21, 2024 4:17 AM
>> *To:* pgsql-admin@lists.postgresql.org <pgsql-admin@lists.postgresql.org>
>> *Subject:* Fwd: pg_restore option --clean
>>
>>
>>
>> Hi,
>> The --clean option of pg_restore allows you to replace an object before
>> being imported. However, dependencies such as foreign keys or views prevent
>> the deletion of the object. Is there a way to add the cascade option to
>> force the deletion?
>> Thanks for helping
>> Fabrice
>>
>

-- 
Guillaume.