Thread: Comparing database schema's

Comparing database schema's

From
Frank Kurzawa
Date:
How are people doing automated comparisons of schemas in different databases?

E.g. we have a dev database, a beta database, and a production database. We
need to insure that changes in schema are propagated properly during the
development and deployment process.

I've experimented some with 'pg_dump -s' to do this: Do a schema dump on the two
databases and a diff. But due to myriad small differences (order of creation
of tables, constraints, etc.) it is very difficult to get a usable diff without
engaging in massive massage of the dump output, including dumping a table at a time.

I found a reference to a schema comparison tool in the mailing list archives, but
it appears to be far out of date and not currently supported.

Regards,

Frank


Re: Comparing database schema's

From
Gaetano Mendola
Date:
Frank Kurzawa wrote:

 > How are people doing automated comparisons of schemas in different databases?
 >
 > E.g. we have a dev database, a beta database, and a production database. We
 > need to insure that changes in schema are propagated properly during the
 > development and deployment process.
 >
 > I've experimented some with 'pg_dump -s' to do this: Do a schema dump on the two
 > databases and a diff. But due to myriad small differences (order of creation
 > of tables, constraints, etc.) it is very difficult to get a usable diff without
 > engaging in massive massage of the dump output, including dumping a table at a time.
 >
 > I found a reference to a schema comparison tool in the mailing list archives, but
 > it appears to be far out of date and not currently supported.

Consider to use the EMS tool postgres comparer:

http://www.ems-hitech.com/pgsqlutils/


Regards
Gaetano Mendola








Re: Comparing database schema's

From
Tom Lane
Date:
Frank Kurzawa <fkurzawa@topazsoftware.com> writes:
> How are people doing automated comparisons of schemas in different databases?

> I've experimented some with 'pg_dump -s' to do this: Do a schema dump
> on the two databases and a diff. But due to myriad small differences
> (order of creation of tables, constraints, etc.) it is very difficult
> to get a usable diff without engaging in massive massage of the dump
> output, including dumping a table at a time.

FWIW, some attention has been paid to this issue recently.  I think CVS
tip pg_dump is more useful for this task than existing releases.  Don't
suppose you'd want to try it out?

            regards, tom lane

Re: Comparing database schema's

From
Gaetano Mendola
Date:
Tom Lane wrote:

> Frank Kurzawa <fkurzawa@topazsoftware.com> writes:
>
>>How are people doing automated comparisons of schemas in different databases?
>
>
>>I've experimented some with 'pg_dump -s' to do this: Do a schema dump
>>on the two databases and a diff. But due to myriad small differences
>>(order of creation of tables, constraints, etc.) it is very difficult
>>to get a usable diff without engaging in massive massage of the dump
>>output, including dumping a table at a time.
>
>
> FWIW, some attention has been paid to this issue recently.  I think CVS
> tip pg_dump is more useful for this task than existing releases.  Don't
> suppose you'd want to try it out?

Yes, indeed now pg_dump when possible dump the objects in alfabetic order
so shall be easy to perform a diff between the two schemas.


Regards
Gaetano Mendola