Developers and DBAs often compare and synchronize structures of their database objects (Tables, Views, Triggers, Functions, Events and Stored Procedures) from Development server to Production server and vice-versa. One can use a schema comparison / synchronization tool to synchronize database (DB) objects.
SQLyog’s Schema synchronization tool is simple and intuitive to use for comparing and synchronizing database objects. It comes with new looks and a Filter feature. Database objects’ comparison is now 100x faster.
Using SQLyog, schema synchronization can be usually done in three easy steps:
- Choose the databases
- Pressing Compare will show differences between database objects
- Execute All button will execute the SQL statements to synchronize selected database objects.
Options provided in SQLyog to speedup comparison process are:
1. Hide and Ignore Object(s)
SQLyog has four Hide and Ignore Object(s) options, which hides database objects as stated:
- To be altered in target
- To be created in target
- To be dropped in target
For example, if you want to see only those database objects that are to be altered, then simply keep “To be altered in target” option unchecked, and the rest checked.
Note: One can at most check three of these options at a time. With all four options checked, there is nothing left to be shown/ synchronized in tree-view.
From version 10.3 SQLyog has Filter in Schema Synchronization Tool. Now, instead of comparing all database Objects, one can easily filter out only specific database Object to be compared. Filter also identifies MySQL’s wildcard characters like ‘%’ and ‘_’. This feature will speedup the task of schema comparison as it is limited to selected database Objects. By default, filter is set to ‘%’, that means it’ll consider all database Objects for schema comparison.
If you wish to sync only a particular table, then specify name of the table in filter. For example, to sync structure of table “actor” from database sakila_copy in production server to database sakila in development server, enter into filter “actor”, select ‘Only Tables’ option. Tree-view will now only show the table “actor”.
Let’s take an important case into consideration. Say, to synchronize all tables that are used in WordPress, with prefix ‘wp_’, type “wp\_%” in filter. Notice that ‘_’ has been escaped with ‘\’ as ‘_’ is also a MySQL wildcard character. Doing this, shows only those tables that begin with ‘wp_’.
3. Sync Only Tables or All Objects
SQLyog also gives you an option to sync either tables only or all database objects.
Note: For all these options to take effect you should set them before you start comparing databases. Otherwise, you will have to again compare databases after setting the options. These options are persistent across sessions.
For differentiating database objects to be synchronized, SQLyog has color coding. Color coding as seen in Source Database’s tree-view is:
- Green – to be created in Target Database.
- Cyan – to be altered in Target Database.
- Grey – to be dropped in Target Database.
- Black – identical in both Source and Target Databases.
Note: Don’t get confused with Target Database’s Tree-view’s color coding, which is just an indication of what will be created/ altered/ dropped, if reverse sync is done.
The Schema Synchronization tool is a Power Tools feature present in SQLyog Ultimate and Enterprise editions. You can also download a trial copy.