Thread: Docs pg_restore: Shouldn't there be a note about -n ?
I’m in the process of trying to restore some PG15/16 backups in PG17.
While playing with different -t and -n combinations I was browsing through the docs.
In pg_restore there are two notes about both -t / -n
> When -n / -t is specified, pg_dump makes no attempt to ...
In pg_dump though there’s the equivalent note only for the -t option.
Shouldn’t it be a note as well for -n ?
Otherwise I would expect -n to cascade the restore to objects in other schemas;
Which I don’t think it does.
Am I missing something?
On Sat, Sep 21, 2024 at 8:34 PM Florents Tselai <florents.tselai@gmail.com> wrote:
I’m in the process of trying to restore some PG15/16 backups in PG17.While playing with different -t and -n combinations I was browsing through the docs.In pg_restore there are two notes about both -t / -n> When -n / -t is specified, pg_dump makes no attempt to ...In pg_dump though there’s the equivalent note only for the -t option.Shouldn’t it be a note as well for -n ?Otherwise I would expect -n to cascade the restore to objects in other schemas;Which I don’t think it does.Am I missing something?
Ah, swapped them by mistake on the previous email:
They're both available in the pg_dump and note on -n missing in pg_restore.
The question remains though:
Shouldn’t there be a note about -n in pg_restore ?
Florents Tselai <florents.tselai@gmail.com> writes: > Ah, swapped them by mistake on the previous email: > They're both available in the pg_dump and note on -n missing in pg_restore. > The question remains though: > Shouldn’t there be a note about -n in pg_restore ? Probably. I see that pg_dump has a third copy of the exact same note for "-e". pg_restore lacks that switch for some reason, but this is surely looking mighty duplicative. I propose getting rid of the per-switch Notes and putting a para into the Notes section, along the lines of When -e, -n, or -t is specified, pg_dump makes no attempt to dump any other database objects that the selected object(s) might depend upon. Therefore, there is no guarantee that the results of a selective dump can be successfully restored by themselves into a clean database. and mutatis mutandis for pg_restore. regards, tom lane
> On 21 Sep 2024, at 9:22 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Florents Tselai <florents.tselai@gmail.com> writes: >> Ah, swapped them by mistake on the previous email: >> They're both available in the pg_dump and note on -n missing in pg_restore. >> The question remains though: >> Shouldn’t there be a note about -n in pg_restore ? > > Probably. I see that pg_dump has a third copy of the exact same > note for "-e". pg_restore lacks that switch for some reason, > but this is surely looking mighty duplicative. I propose getting > rid of the per-switch Notes and putting a para into the Notes > section, along the lines of > > When -e, -n, or -t is specified, pg_dump makes no attempt to dump > any other database objects that the selected object(s) might > depend upon. Therefore, there is no guarantee that the results of > a selective dump can be successfully restored by themselves into a > clean database. Agree with that, but I think there should be a pointer like “see Notes” . Otherwise I’m pretty sure most would expect pg doing magic. Can’t remember I scrolledl to the bottom of a page “notes” after finding the option I want. I would also add an example of what “depend upon” means, To underline that it’s really not that uncommon. Something like: “If you pg_dump only with -t A and A has foreign key constraints to table B, Those constraints won’t succeed If B has not been already restored” > > and mutatis mutandis for pg_restore. > > regards, tom lane