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.