meta data for this page
Database Comparer
The IBExpert Database Comparer can be found in the IBExpert Tools menu. Unfortunately it is not included in the free IBExpert Personal Edition.
It allows developers to compare database versions or database SQL scripts. This is particularly useful, for example, before installing an updated client application, which contains new tables, procedures, exceptions, etc., as it is possible to compare the databases and - by analyzing the resulting script - view both the changes to the software, as well as those data changes made by the client, erasing any irrelevant alterations, and applying those which are relevant, by executing the script.
Options page
On the Options page, first select the Source (Master/Reference) Database or SQL script, by clicking the icons to the right of the path/file input area, to specify drive, path and database name. This is the reference database, to which the second database is to be compared. Then select the Target (Comparative) Database or script, i.e. the database which needs to be assessed and altered in order to conform with the reference database. Instead of searching for the path and directory of the databases you wish to compare, you can simply drag 'n' drop both databases from the DB Explorer into the respective fields in the Database Comparer dialog.
It is possible to store into or load from an external file (using the toolbar icons at the top of the dialog), and use this together with IBEScript.exe (IBExpert command-line tool). When settings are saved into an INI file, IBExpert also saves the server version.
The Server version offers a drop-down list to allow specification of the Firebird or InterBase® server version and therefore which syntax should be used while comparing the two selected databases.
There are a number of options, which can be checked if they should be included in the comparison. All options can be selected or deselected simply and quickly using the right-click context-sensitive menu. These options include:
- Objects to compare (Array fields are also supported)
- Keys and constraints
- Privileges
- Miscellaneous
- Safe data type conversion only: if this option is enabled, only safe data type conversion ALTER <column> TYPE <new_type> will be performed. Otherwise system tables are updated directly. InterBase® 2007 is also supported.
- Ignore column positions
- Ignore IBE$ objects
- Use COMMENT statement for object descriptions
- ALTER views instead of DROP/CREATE (for Firebird 2.5 and above): If this option is ON, the Database Comparer will alter modified views instead of dropping and creating them again. This enables the alteration of a modified view even if somebody is still using it.
- Verbose: this displays each step that IBExpert performs and when, allowing a detailed comparison.
After selecting all features to be (or not to be) compared, click the Compare icon to start the comparison.
Log page
The Log page logs the comparison, which can be halted and restarted at any time by using the Stop and Compare icons.
The results are automatically loaded in the Script Executive. Here it is easy to see which operations need to be performed in order to make the comparative database identical to the reference database.
IBEBlock page
The IBEBlock page contains an automatically generated block for the comparison of databases, using the values of the properties and options specified on the Options page.
Statements page
It is simple to unselect or select individual statements using point and click. Please refer to Script Executive for further details. By executing all SQL statements the comparative database becomes identical to the master database.
Please note that certain alterations may cause serious problems with your database, due to restrictions and limitations in Firebird/InterBase®. For example, changing a data type from CHAR to INT. Also, Firebird seems to have problems with certain dependencies. For example, when dropping a view with dependent procedures, the Firebird server removes records from RDB$DEPENDENCIES and doesn't recreate them when the view is recreated.
We at IBExpert are aiming to generate comments for all such items that cannot be modified. Please mail us (register@ibexpert.biz) if you incur problems which are not yet reported by IBExpert.