otp*_*ran 5 mysql mysql-workbench relational-theory
我正在使用 MySQL Workbench 来设计我的 MySQL 数据库并模拟实体的外观以及它们如何相互关联。现在,有时我使用 Doctrine ORM。使用 Doctrine ORM 时,我创建了作为域对象并且可以持久化到数据库的类/对象。通过 DocBlock Annotations,我可以表达如何将实体相互关联。
使用 MySQL Workbench,我可以查看一个 EER 图表,该图表向我展示了对象是如何关联的,并且通过查看符号,我可以清楚地看到关系。这种方法的问题是我需要使用 Doctrine CLI 生成数据库模式。然后在 MySQL Workbench 中,我必须从现有数据库创建一个 EER 模型。问题是我经常更改数据库模式,要查看 MySQL Workbench 中的关系,我每次都必须创建一个 EER 模型。这很耗时。
有没有办法只从现有数据库加载 EER 图,然后,当数据库架构更改时,只需刷新并查看更改,这样我就不必为每个小的更改生成 EER 图?
我过去使用过 Navicat,你可以这样做。当数据库发生变化时,只需按F5,ER图中的关系就会立即发生变化。Navicat 的唯一问题是表之间没有显示它们关系的符号。只有线条。
是否可以在 MySQL Workbench 中使用该功能?如果没有,是否有其他工具可以让我看到 ER 图,并在我更改数据库架构后立即刷新图?
从 MySQL Workbench 5.2 窗口中,选择 Database -> Synchronize model 这将允许您将模型(EER 图)与数据库(您需要创建一个保存的连接)同步。
我推荐这种方法而不是仅仅从数据库中对模型进行逆向工程,因为它维护了 EER 图的布局。一个警告是您需要手动向 EER 图中添加新表。
小智 5
使用“数据库”->“同步”需要注意的一件事是,它默认将图表更改应用到实时数据库,即它建议诸如以下的语句:
如果存在则删除表h2
。Import_Homol
如果您只是使用 EER 工具来输出图表,请小心更改此默认行为,否则如果模型中不存在活动表(附加列或任何其他架构更改也会如此),您的活动表将被删除。
http://dev.mysql.com/doc/workbench/en/wb-database-synchronization.html