Compare 2 Firebird structures(500 pts) and list differences (750 pts)
Posted on 2005-04-28
I would like some source to query a firebird database structure, and compare it with a "master" database structure
This is so that I can check 60 databases and see which ones may have missed an upgrade which updated the structure
I know this can be done by querying the RDB$ tables in the structure
The actual RDB$ names may not match exactly.
e.g. tables may have been created in a different order. I don't mind, as long as the tables are there.
For this reason you will have to do queries on the table name at the client, and use the reference given by that for further comparisons
For simplicity, all I require for 500 pts is to know if the databases are different (missing/different tables/domains/procedures/views)
for a total of 750 points, i would like to know the differences
Ideally the results I would like are so I can tell
at the table level
table missing: "mytable2" does not exist - if the table is missing from the client database
extra table exists: "mytable3" exists - this table is not in the master's database, but for some reason is in a client's
if the table exists, then check the fields and return results if they differ
field differs: "mytable1.Home_Phone" is different - if the client's field is varchar(10) but should be varchar(12) for example
field missing: "mytable1.Mobile_Phone is missing - if the field does not exist in the client's database but is in the master's
extra field: "maytable1.Fax_Number" - if the field is not in the master's database, but for some reason is i a client's
stored procedure checks
stored procedure missing: "myprocedure1"
stored procedure diffferent: "myprocedure 2"
extra stored procedure
view missing: "myprocedure1"
view diffferent: "myprocedure2"
I lack the time to do this along with the other workload I have
If someone has something like this in Delphi, or can code it up for me, it would really be great.