Re: pg_dump and schemas

From: "Brent Wood" <b(dot)wood(at)niwa(dot)co(dot)nz>
To: <rconover(at)infogears(dot)com>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: Re: pg_dump and schemas
Date: 2008-04-05 19:16:00
Message-ID: 47F878B00200007B0001217F@gwia1.ham.niwa.co.nz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi Rusty,

In which case can you not include the text around the schema & table creation commands to ensure other instances of "public" do not match the string?

I'm not sure exactly what the pg_dump output contains, but you could use something like:

cat pg_dump.sql | sed 's/CREATE SCHEMA "public"/CREATE SCHEMA "new_schema"/' | \
sed 's/CREATE TABLE "public"./CREATE TABLE "new_schema"./' > new_schema.sql

This should avoid any ambiguity as to which instances of "public" you want changed in the pg_dump sql file.

I think adding support for changing schema names in pg_dump would make it unnecessarily complex, as why just schemas? Also rename databases, tables, columns, index names, change comments...

I've yet to find something like this I couldn't do with sed, & if there was there is always awk for the truly desparate :-)
pg_dump generates the dump, reliably, simply & safely. Any change you want from the original is not, IMHO, the role of a backup program. That should ONLY back up a replica of your data. Make changes afterwards if you like, but a backup program shouldn't modify your data.

Just my 02c, & I ain't no Postgres developer, so I'm not speaking for them in this....

Cheers,

Brent Wood

Hi Brent,

It's not he best solution, because we could have fields containing
"public" in their names and sed would happily change those to test1 as
well.

I'm looking for a safer solution, thats why it should be a part of
pg_dump.

Rusty

On Apr 5, 2008, at 12:41 AM, Brent Wood wrote:

> Hi Rusty,
>
> Try passing the output through a utility like sed, already there
> under Linux , but versions that work under Windows are available
> (eg, cygwin)
>
> eg, using a pipe: pg_dump -d.... | sed 's/public/test1/g' > dump.sql

Browse pgsql-general by date

  From Date Subject
Next Message Benoît Carpentier 2008-04-05 20:26:54 Benetl 1.7, free ETL tool using postgreSQL is out !!!
Previous Message Shane Ambler 2008-04-05 17:46:50 Re: mac ports question