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.