Skip site navigation (1) Skip section navigation (2)

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: (view raw, whole thread or download thread mbox)
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

pgsql-admin by date

Next:From: Martin FandelDate: 2005-06-28 15:59:24
Subject: Re: change existing table definition
Previous:From: Lee WuDate: 2005-06-28 15:34:44
Subject: Re: change existing table definition

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group