[Resending, forgot to CC list]

On Wed, Feb 10, 2010 at 10:47 AM, Josh Kupershmidt <schmi...@gmail.com>wrote:

>
> On Wed, Feb 10, 2010 at 10:09 AM, Iñigo Martinez Lasala <
> imarti...@vectorsf.com> wrote:
>
>>  Two questions.
>>
>> I could, of course, create a data-only dump (in fact I've already done
>> it). However, when restoring, I cannot use pg_restore since it's in plain
>> format, don't you? pg_restore only works with tar or compressed formats, I
>> think. I could restore data-only dump with psql, but then I've to disable
>> triggers and psql does not have an option in order to disable them.
>>
>>
> Here's what I meant by the first routine. Let's dump database "test" and
> restore into database "restoration".
>
>   pg_dump --schema-only -Ujosh --format=c --file=test.schema.pgdump test
>   pg_restore -Ujosh --dbname=restoration test.schema.pgdump
>   pg_dump --data-only -Ujosh --format=p --disable-triggers
> --file=test.data.pgdump test
>   # clean up test.data.pgdump here
>   psql -Ujosh restoration < test.data.pgdump
>
> So for the restoration of the actual data, you'd use psql, but the
> disabling of triggers would be handled for you (you should see ALTER TABLE
> ... DISABLE TRIGGER ALL; and ALTER TABLE ... ENABLE TRIGGER ALL; or similar
> in test.data.pgdump)
>
> Second one. You say I could restore a compressed dumpfile into a plaintext
>> file. Is this possible? How? And after cleaning this plaintext file, how do
>> I restore it again into database without using psql since pg_restore only
>> accept tar or compressed file formats?
>>
>
> To turn a pg_dump file which was dumped with, say, --format=c into a
> plaintext file loadable by SQL:
>
>   pg_dump -Ujosh --format=c --file=test.Fc.pgdump test
>   pg_restore test.Fc.pgdump > test.plaintext.pgdump
>   # clean up test.plaintext.pgdump here
>   psql -Ujosh restoration < test.plaintext.pgdump
>
> This was the second option I mentioned. You would then have to use psql to
> restore this plaintext file. You might be able to jump through some hoops
> and turn the plaintext dump back into a pg_restore compressed dump, but I
> don't see any point in this -- the plaintext dump here should have the
> CREATE TRIGGER statements after the table creation and population steps,
> which is likely exactly what you want.
>
> Josh
>

Reply via email to