Compare and synchronize two SQL database schemas and see the difference between them. A very helpful tool when dealing with different versions of a database.
- Copy SQL exports directly from PhpMyAdmin
- Comparison results are color highlighted
- Easily synchronize your database schemas
- Specific comparison elements can be ignored
- Get statistics for both schemas
How does it work?
- How to compare SQL schemas?
- Press A button to load
.sqlfile into box A
- Press B button to load
.sqlfile into box B
- Press Compare A and B and the program will take care of the rest!
- Press A button to load
- I only want to compare *, can I do that?
Yes, you can compare specific elements alone or define what you want to compare. To do that you must open the Ignore settings:
Tools -> Ignore settings.
Simply check the elements you want to ignore and press okay, then press Compare A and B again to see the results. The ignore settings also affect the statistics.
- I do not like the colors, can I change them?
Yes, you open the color settings:
Tools -> Comparison colorswhere you can change the font, backcolor and forecolor of any comparison color.
- What is an SQL schema?
It is a description of the database structure in its formal language, and this comparer is intended for MySQL. Here is an example of a SQL schema:
CREATE TABLE IF NOT EXISTS `gallery_image_desc` ( `id` int(11) NOT NULL auto_increment, `gallery_idfk` int(11) NOT NULL, `imgname` varchar(255) NOT NULL, `desc` text NOT NULL, `show` tinyint(1) NOT NULL default '1', `views` int(11) NOT NULL default '0', PRIMARY KEY (`id`) );If you do not know what this is, you probably have no use for this comparer
- Can it detect my structure?
The Parser is designed to be very forgiving and to recognize individual parts. I does not require you to have everything in correct order (but the database might) so it will detect most schemas. Consider these two silly schemas:
CREATE TABLE `test` ( `mycol` int(11) NOT NULL auto_increment default '0', PRIMARY KEY (`mycol`) );Something else:
CREATE TABLE test ( auto_increment NOT NULL int 11 PRIMARY KEY default '0' mycol );
The Comparer will scan these two schemas and tell you that they are a perfect match. Which is true, except the second one is completely invalid SQLTable names can even be strings and still be accepted:
CREATE TABLEcommand. Still, would you re-arrange some of its elements you end up with the same table.
CREATE TABLE 'this_is_string' ( ... );All these features are to ensure better and more flexible SQL Comparer.