Re: Backing up a DB excluding certain tables

Поиск
Список
Период
Сортировка
От JORGE MALDONADO
Тема Re: Backing up a DB excluding certain tables
Дата
Msg-id CAAY=A7-aRQ7SaEjVzpQXmtBsL+fAKE+aQmUwkgxM2D6NHDGSKQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Backing up a DB excluding certain tables  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Backing up a DB excluding certain tables  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: Backing up a DB excluding certain tables  (Adrian Klaver <adrian.klaver@aklaver.com>)
Список pgsql-general
Is this the correct way to answer when you say that I must keep the list cc'd? I am not sure if I only have to reply to the pgsql-general@lists.postgresql.org list or also include individual emails like yours and Adrian's.

I have tried many ways to make this pg_dump command work without success. I just do not know what is going on. The last test I performed was as follows which only excludes 1 table in the riopoderoso schema but it did not work. Such a table is included in the resulting backup plain format file.

pg_dump -E win1252 -f c:/temp/respaldo.backup -n riopoderoso -F p -h localhost -p 5432 -U postgres -W -s -T 'riopoderoso."AspNetRoleClaims"' riopoderoso

If there are any additional comments please let me know. I will keep trying. It is important to exclude these tables because they are created and managed by other means. Such tables are part of the authentication feature included in ASP.NET Core.

With respect,
Jorge Maldonado


On Tue, Apr 26, 2022 at 6:36 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
[ please keep the list cc'd ]

JORGE MALDONADO <jorgemal1960@gmail.com> writes:
> As for the answer by *Tom Lane*, I am not restoring the DB but only getting
> the backup in plain format. I see that tables that contain "AspNet" in
> their name are part of the resulting dumped file. For example, the
> following is part of the resulting backup plain file:

> CREATE TABLE riopoderoso."AspNetRoleClaims" (
>     "Id" integer NOT NULL,
>     "RoleId" character varying(450) NOT NULL,
>     "ClaimType" text,
>     "ClaimValue" text
> );

Ah.  Now that you actually showed us what you're doing, there are
two problems:

1. "aspnet*.*" is trying to match a *schema* name starting with "aspnet",
not a *table* name.  What you want is more like "*.aspnet*", or possibly
"riopoderoso.aspnet*".  (You can't just write "aspnet*", because
riopoderoso isn't going to be in pg_dump's search path, and that pattern
would only match tables in the search path.)

2. You're not accounting for case.  Per the discussion of patterns
in the psql reference manual, to match an upper-case name you'd need
to spell it with the correct casing and then put double quotes around
it.

Actually there's a third problem, which is to get the shell to not strip
the double quotes from the pattern before handing it to pg_dump.

For me, a dump command like

pg_dump -n riopoderoso -T '*."AspNet"*' ...

does what you want.  However, I gather you're doing this on Windows,
and I'm not sure whether shell command quoting rules are the same there.
You might need something weird like backslashing the double quotes.

                        regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: "Peter J. Holzer"
Дата:
Сообщение: Re: Replication with Patroni not working after killing secondary and starting again
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Backing up a DB excluding certain tables