Re: How to compare the schemas ?

From: Scott Marlowe <smarlowe(at)g2switchworks(dot)com>
To: Ian FREISLICH <if(at)hetzner(dot)co(dot)za>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>, Milorad Poluga <milorad(dot)poluga(at)cores(dot)co(dot)yu>, pgsql-admin(at)postgresql(dot)org
Subject: Re: How to compare the schemas ?
Date: 2005-06-28 15:41:33
Message-ID: 1119973293.8208.107.camel@state.g2switchworks.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Tue, 2005-06-28 at 08:32, Ian FREISLICH wrote:
> Peter Eisentraut wrote:
> > Milorad Poluga wrote:
> > > One (certainly not the best options) is to do something like this:
> > >
> > > pg_dump ... DB1 =A0> PG_SCHEMA1
> > > pg_dump ... DB2 =A0> PG_SCHEMA2
> > > diff =A0PG_SCHEMA1 =A0PG_SCHEMA2 =A0> differences.txt
> >
> > What is wrong with that?
>
> All the extra TOC ID and comment stuff that pg_dump introduces.
> Also, I think that the dump is sorted by creation order or some
> other scheme, so even though the databases might be identical, the
> diff output would be significant.
>
> This is something that I have battled in the past. The only solution
> was to always update the database from a set of scripts, one for
> each function and one for the tables. These scripts kept in CVS
> auto update the comment on each object:
>
> COMMENT ON FUNCTION namedConfGen(TEXT,TEXT) IS '$Id: sproc.api.namedConfGen,v 1.
> 8 2004/05/07 08:02:55 ianf Exp $';
>
> Now I can cvs diff using the version numbers. Not ideal, but at
> least I know exactly where I am.

I just pass a schema backup through grep or sed with this option:

grep -Pv "^--"

and get a pretty good idea of the differences.

Since our databases are created by scripts as well, they generally share
creation order and such, so any small difference from missing a script
on one or another environment shows up with this.

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Martin Fandel 2005-06-28 15:59:24 Re: change existing table definition
Previous Message Lee Wu 2005-06-28 15:34:44 Re: change existing table definition