MySQL Workbench - 如何同步EER图

46

我正在使用MySQL Workbench创建我的现有数据库的可视化表示,并且能够通过“Database -> Synchronize Model...”菜单同步模型。但是,每次我同步(更新)我的模型时,都必须重新创建EER图并重新排列所有表格。是否有一种方法也能够更新或同步EER图呢?谢谢。

4个回答

66
  • 数据库 > 同步模型...
  • 选择已存储的连接
  • 选择架构
  • 选择更新哪个:模型还是源代码(在您的情况下,将箭头指向模型)

实际上就是这样。我刚刚安装了当前版本的MySQL Workbench(v5.2.33),模型同步正如我所预期的那样进行,而无需我重新组织所有表格。谢谢! - Tiago Alves
7
同步让我很烦恼。我只想更新视觉表现(比如 DatabaseModel.mwb 文件),但更改总是应用于数据库本身而不是视觉表现!我做错了什么? - hfrmobile
8
当你在“选择要应用的更改” - 模型和数据库差异中时,箭头是绿色且指向右侧,你必须选择该行并单击“更新模型”按钮。 - Jaroslav Štreit

2

你是否使用不支持外键(例如MyISAM)的MySQL数据库引擎?因此,表之间的关系未保存在MySQL服务器上,在同步到工作台期间会丢失。

但我意识到这只是你问题的“原因”。如果不使用支持外键的引擎(例如InnoDB),我无法提供保留您排列的答案。


2
我遇到了这个问题的变种 - 当我从数据库更新模型时,我的一个表格及其对应的可更新视图不会更新。

我认为实际上是 模型 更新了,但是图表没有更新。起初我并没有意识到这一点。

无论如何,以下是刷新 E/R 图表的方法:

  1. 从图表中删除未更新的对象(右键单击并选择“删除”)。
  2. 在左侧边栏的目录视图中查找对象。
  3. 将它们拖回到图表中。

现在它们应该反映模型(如果您遵循了上面接受的答案,则应该反映数据库)。


1
这在6.3.6上不起作用。当您从图表中删除一个表时,它也会从目录中删除。您无法将表添加或重新添加到图表的目录中,因此必须创建一个新的图表以刷新模式。这是Oracle的一个小疏忽。 - GreenRaccoon23

1
当我需要同步超过3个表且涉及关系变化时,我会更改箭头方向(模型 <- 源),勾选“跳过数据库更改仅更新模型”并执行...。
“模型和数据库同步进度”窗口被挂起,并突出显示“将更改应用于模型”。没有处理器在工作,也没有任何动静...
我点击窗口的X按钮,然后重新执行此过程。选择DB,忽略(全部),并选取较少的表进行更新。
版本为5.2.44 ce rev 9933。
编辑:版本5.2.47修复了这个错误!耶!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接