Re: `pg_restore --if-exists` clarification
От | Gulyás Attila |
---|---|
Тема | Re: `pg_restore --if-exists` clarification |
Дата | |
Msg-id | CADnELphErTfH0_R-7g-4TM2v6fnPaLnbPoCYLag1ATGSxb9ivA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: `pg_restore --if-exists` clarification (Kirk Parker <khp@equatoria.us>) |
Ответы |
Re: `pg_restore --if-exists` clarification
|
Список | pgsql-docs |
So `--if-exists` simply suppresses any notice / warning that would occur?
I'm sorry if I come off as obtuse, but I have literally no idea what `--clean` and `--if-exists` do when used together. I took the quote from the Stackoverflow answer on face value, because it sounded plausible and I can't understand `--if-exists` current description yet. Any clarification there would be an improvement in my opinion for people in similar situations (i.e., having little to no SQL knowledge, but still having to do basic DB admin tasks).
Appreciatively,
Attila
On Thu, Sep 28, 2023 at 12:01 PM Kirk Parker <khp@equatoria.us> wrote:
On Thu, Sep 28, 2023, 05:52 PG Doc comments form <noreply@postgresql.org> wrote:The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/16/app-pgrestore.html
Description:
Good Morning,
In the `pg_restore` docs
(https://www.postgresql.org/docs/current/app-pgrestore.html), `--if-exists`
states that it is to
> Use conditional commands (i.e., add an IF EXISTS clause)
> to drop database objects. This option is not valid unless
> --clean is also specified.", but not being a SQL expert,
> I'm having a hard time deciphering this.
Suggestion: Would you consider adding the sentence (or something similar)?
> "--clean makes pg_restore drop all objects first,
> and --if-exists prevents that non-existent objects
> cause a failure."
Source: https://stackoverflow.com/a/75136163/1498178
This is succinct, and tells exactly what one needs to know. Thank you and
have a great day!
Appreciatively,
AttilaBut "failure" is not what happens. If you read the part regarding --clean, you will see that it says:
(Unless
--if-exists
is used, this might generate some harmless error messages, if any objects were not present in the destination database.) [emphasis added]- with extra emphasis on the word "harmless" -- no failure is caused; the restore proceeds just fine.
- If anything were to change in this regard, it might be better to reconsider what we call the message (i.e.what language pg_restore emits in this scenario.) It's true, I suppose, in a literal sense that it's an error in that pg_restore couldn't drop a table when instructed to, where no such table exists. But pragmatically it doesn't matter, so why not reclassify this as a "warning" or a "notice"?
- --Kirk
В списке pgsql-docs по дате отправления: