Re: Enhancement request for pg_dump - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Enhancement request for pg_dump
Date
Msg-id 571A7987.8050106@aklaver.com
Whole thread Raw
In response to Re: Enhancement request for pg_dump  (Pierre Chevalier Géologue <pierrechevaliergeol@free.fr>)
List pgsql-general
On 04/22/2016 11:16 AM, Pierre Chevalier Géologue wrote:
> Le 22/04/2016 19:11, Adrian Klaver a écrit :
>>> Last time I had to do this kind of exercise, a few years ago, I was in a
>>> remote place without Internet access, so I could not get any information
>>> or ask any help.  I was kind of surprised/frustrated by the (apparent)
>>> lack of order of the pg_dump output.  So I manually wrote scripts to
>>> export the tables and views' definitions separately, one by one, (using
>>> pg_dump, of course) and stack them in the order I wished into a large
>>> file.  That was quite suboptimal, but it worked as expected, and I was
>>> able to diff and patch correctly.
>>
>> You realize there is pg_restore -l and pg_restore -L :
>>
>> http://www.postgresql.org/docs/9.5/interactive/app-pgrestore.html
>
> Yes, thanks for the advice.  Now I remember that I had used it also: I
> just found these notes in my numeric attic:
>
>    # pierre@autan: ~        < 2013_08_17__17_00_23 >
> pg_restore -l database_2013_08_14_20h34.pg_dump -n pierre >
> tt_schema_pierre

Yea, you can also use the filtering switches to create a filtered TOC, so:

pg_restore -l -s test.out > test_s.toc

Now the TOC has only a summary line of what is being done, but it is
easy enough to feed it back to pg_restore and have it restore to a plain
text file instead of a database:

pg_restore -L test_s.toc  -f test_s.sql


>
>    # pierre@autan: ~        < 2013_08_17__17_00_23 >
> vi tt_schema_pierre
>
>    # pierre@autan: ~        < 2013_08_17__17_00_23 >
> cat tt_schema_pierre
> DROP VIEW IF EXISTS pierre.dh_collars;
> DROP VIEW IF EXISTS pierre.dh_litho;
> DROP VIEW IF EXISTS pierre.dh_sampling_grades;
> DROP VIEW IF EXISTS pierre.dh_sampling;
> DROP VIEW IF EXISTS pierre.topo_points;
> DROP VIEW IF EXISTS pierre.baselines;
> DROP VIEW IF EXISTS pierre.dh_devia;
> ...
>
>
> I just cannot remember why it did not fulfill my needs, so that I rather
> opted to pg_dump's.
>
>
> ...
>> It does not solve all problems but it does do some ordering and is
>> amenable to be
>> imported as space separated file for further ordering :
>>
>> aklaver@panda:~> pg_restore -l test.out
>> ;
>> ; Archive created at Fri Apr 22 10:07:50 2016
>> ;     dbname: test
>> ;     TOC Entries: 67
>> ;     Compression: -1
>> ;     Dump Version: 1.12-0
>> ;     Format: CUSTOM
>> ;     Integer: 4 bytes
>> ;     Offset: 8 bytes
>> ;     Dumped from database version: 9.4.6
>> ;     Dumped by pg_dump version: 9.4.6
>> ;
>> ;
>> ; Selected TOC Entries:
>> ;
>> 2702; 1262 983301 DATABASE - test postgres
>> 9; 2615 1298825 SCHEMA - MASTER_USER postgres
>> 8; 2615 2200 SCHEMA - public postgres
>> 2703; 0 0 COMMENT - SCHEMA public postgres
>> 2704; 0 0 ACL - public postgres
>> 2; 3079 12456 EXTENSION - plpgsql
>> 2705; 0 0 COMMENT - EXTENSION plpgsql
> ...
>
> Thanks, I'll dig a bit more in pg_restore, for my current issues.
>
> Pierre


--
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: Guyren Howe
Date:
Subject: Re: Proper relational database?
Next
From: Raymond Brinzer
Date:
Subject: Re: Proper relational database?