Thread: pg_dump negation regex

pg_dump negation regex

From
Eudald Valcàrcel Lacasa
Date:
Hello!
I've been looking at the documentation and there seems to be no keyword for negation purposes.

Am I missing something? Or it's like this?

I'm trying to use pg_dump to create a database skeleton and I have tables like program_0, program_1, etc. And I'd like to dump all the tables but client_1 onwards.

Does anybody happen to know a way to accomplish it?

Thank you!
Eudald

Re: pg_dump negation regex

From
Adrian Klaver
Date:
On 5/7/20 9:53 AM, Eudald Valcàrcel Lacasa wrote:
> Hello!
> I've been looking at the documentation and there seems to be no keyword 
> for negation purposes.
> 
> Am I missing something? Or it's like this?

https://www.postgresql.org/docs/12/app-pgdump.html

-T pattern
--exclude-table=pattern

     Do not dump any tables matching pattern. The pattern is interpreted 
according to the same rules as for -t. -T can be given more than once to 
exclude tables matching any of several patterns.

     When both -t and -T are given, the behavior is to dump just the 
tables that match at least one -t switch but no -T switches. If -T 
appears without -t, then tables matching -T are excluded from what is 
otherwise a normal dump.


For what patterns you can use see:

https://www.postgresql.org/docs/12/app-psql.html#APP-PSQL-PATTERNS

> 
> I'm trying to use pg_dump to create a database skeleton and I have 
> tables like program_0, program_1, etc. And I'd like to dump all the 
> tables but client_1 onwards.
> 
> Does anybody happen to know a way to accomplish it?
> 
> Thank you!
> Eudald


-- 
Adrian Klaver
adrian.klaver@aklaver.com



Re: pg_dump negation regex

From
Eudald Valcàrcel Lacasa
Date:
I know the -T command, but I'm trying to regex the "pattern" in -T in order to exclude all tables named program_1 onwards.
I believe commonly you'd use -T "program_!0", but the ! negation keyword is not defined.

Thanks,
Eudald

El jue., 7 may. 2020 a las 19:36, Adrian Klaver (<adrian.klaver@aklaver.com>) escribió:
On 5/7/20 9:53 AM, Eudald Valcàrcel Lacasa wrote:
> Hello!
> I've been looking at the documentation and there seems to be no keyword
> for negation purposes.
>
> Am I missing something? Or it's like this?

https://www.postgresql.org/docs/12/app-pgdump.html

-T pattern
--exclude-table=pattern

     Do not dump any tables matching pattern. The pattern is interpreted
according to the same rules as for -t. -T can be given more than once to
exclude tables matching any of several patterns.

     When both -t and -T are given, the behavior is to dump just the
tables that match at least one -t switch but no -T switches. If -T
appears without -t, then tables matching -T are excluded from what is
otherwise a normal dump.


For what patterns you can use see:

https://www.postgresql.org/docs/12/app-psql.html#APP-PSQL-PATTERNS

>
> I'm trying to use pg_dump to create a database skeleton and I have
> tables like program_0, program_1, etc. And I'd like to dump all the
> tables but client_1 onwards.
>
> Does anybody happen to know a way to accomplish it?
>
> Thank you!
> Eudald


--
Adrian Klaver
adrian.klaver@aklaver.com

Re: pg_dump negation regex

From
Rob Sargent
Date:

> On May 7, 2020, at 1:03 PM, Eudald Valcàrcel Lacasa <eudald.valcarcel@gmail.com> wrote:
>
> I know the -T command, but I'm trying to regex the "pattern" in -T in order to exclude all tables named program_1
onwards.
> I believe commonly you'd use -T "program_!0", but the ! negation keyword is not defined.
>
> Thanks,
> Eudald
>

 More like ‘program[^0].*’ of there are no leading zero (e.g.09) or ‘program[1-9][0-9]*'


Re: pg_dump negation regex

From
Eudald Valcàrcel Lacasa
Date:
You're right Rob.

Thanks, it worked!
Eudald

El jue., 7 may. 2020 a las 21:16, Rob Sargent (<robjsargent@gmail.com>) escribió:


> On May 7, 2020, at 1:03 PM, Eudald Valcàrcel Lacasa <eudald.valcarcel@gmail.com> wrote:
>
> I know the -T command, but I'm trying to regex the "pattern" in -T in order to exclude all tables named program_1 onwards.
> I believe commonly you'd use -T "program_!0", but the ! negation keyword is not defined.
>
> Thanks,
> Eudald
>

 More like ‘program[^0].*’ of there are no leading zero (e.g.09) or ‘program[1-9][0-9]*'