Bug #38631 Semi-automated database synchronization
Submitted: 7 Aug 2008 14:46 Modified: 16 Dec 2008 15:17
Reporter: Vincent Courcelle Email Updates:
Status: Verified Impact on me:
Category:MySQL Workbench Severity:S4 (Feature request)
Version: OS:Any
Assigned to: CPU Architecture:Any
Tags: keyboard, shortcut, synchronization, TTREV

[7 Aug 2008 14:46] Vincent Courcelle

A great feature would a one-way altering database synchronization, associated to a keyboard shortcut, enabling users to perform modification on the model and then repercuting those changes to the live database in a key or a click.

It implies a parametrization of the "live database" connection string to use by default and implied parameters such as "synchronize only to the database" and "synchronize everything but contents".

How to repeat:
Feature request
[16 Dec 2008 15:17] Susanne Ebrecht
Many thanks for writing a feature request. We will discuss this.
[8 Feb 2011 23:55] Garen Parham
I'd really appreciate this feature.  Over time, I make lots of little adjustments to a schema (and corresponding scripts/code elsewhere), and then want to synchronize it.  Walking through my current Schema model, I have to:

CTRL+SHIFT+Z (Synchronize Model)
Stored Connection: (Blank default, have to use the mouse, argh!)"

After mousing over to the drop-down list and choosing the DB I want to connect to (the same one every time!) there's a window titled "Connect to DBMS and Fetch Information"; I see no value in having this, which reads:

"The following tasks will now be executed:"
* Connect to DBMS
* Retrieve Schema List from Database
ALT+N (Next)

The next Window ("Select Schemata to Synchronize") comes up, at which time I select/unselect the same options every time. Some schema's listed there are not in the Schema I'm working on, nor do they exist in my selected DB--but are checked--so I must painfully uncheck them every time.
ALT+N (Next)

Afterwards, another Window titled: "Retrieve Object Information" .....It finishes - great, so glad you showed me that just so I could hit "Next" again. :)

Now you get to the "Model and Database Differences", which has quite a few problems in itself:
* Requires more mouse movement and clicking on the "+" for the tree controls, since they're not expanded by default. (see http://bugs.mysql.com/bug.php?id=50251)
* Once expanded, some tables flagged as being changed haven't changed at all. (separate issue). 
* When synchronizing to a completely blank schema, tables with circular references (afaict) are flagged as already existing in the "Source" column with no corresponding flag ("!N/A") that they don't exist; here, I must manually select them and click "Update source" to ensure that they get applied. (separate issue)

Finally, now we've reached the "Preview Database changes to be Applied".  Hopefully, there are no errors (but unfortunately often are).

After all of the above is is done, we have:
* 7 hot-keys that had to be CTRL+SHIFT+Z, ALT+N, and ALT+C to close at the end.
* N mouse-clicks to unselect totally unrelated Schema's in the "Select Schemata to Synchronize" window. (Usually 2 in my case)
* N*2 mouse-clicks to unselect any tables I know didn't actually change in the "Model and Database Differences" Window. (Usually 4 in my case)

In addition, if you ever run into too many issues with WB (or sometimes on the application side) you have to manually DROP and CREATE your schema again outside of WB to begin anew (see http://bugs.mysql.com/bug.php?id=45025)
[3 Mar 2012 5:53] Alfredo Kojima
bug #63913 is a duplicate
[5 Dec 2013 19:46] Alfredo Kojima
bug #70652 is a duplicate