在MySQL Workbench中同步模型

时间:2010-04-15 14:13:46

标签: mysql synchronization data-modeling mysql-workbench

在阅读了MySQL Workbench的文档后,我得到的印象是可以更改服务器中的数据库(例如添加新列),然后将DDL更改合并到您的EER图中。至少,它在数据库菜单中有一个同步模型选项。我发现这是一个很好的功能,因为我可以使用图形建模工具而不会成为它的囚犯。

实际上,当我运行这样的工具时,我提供了以下选项:

Model             Update  Source
================  ======  ======
my_database_name  -->     ! N/A
   my_table_name  -->     ! N/A
N/A               -->     ! my_database_name
   N/A            -->     ! my_table_name

我无法真正理解它,但是我基本上得到了它:

DROP SCHEMA my_database_name
CREATE SCHEMA my_database_name
CREATE TABLE my_table_name

这是模型的转储,它会覆盖my_table_name中的所有远程更改。

我误解了这个功能吗?

3 个答案:

答案 0 :(得分:6)

以下是您可以遵循的真正错误。 http://bugs.mysql.com/bug.php?id=61211并且有一个mysql QA人员的解决方法:

解决方法是打开Scripting Shell,检查架构的名称并进行制作 确保oldName字段包含与您尝试同步的名称相同的名称 反对。 命令是:

# print current oldName value
print grt.root.wb.doc.physicalModels[0].catalog.schemata[0].oldName
# change the oldName field value
grt.root.wb.doc.physicalModels[0].catalog.schemata[0].oldName = "newname"

答案 1 :(得分:3)

诚实?我认为这是一个错误。我曾多次遇到同样的问题,我不确定是什么问题。

我建议您查看bug repository,如果找不到任何内容,请将此报告为新的。

答案 2 :(得分:1)

我总是多次使用同步成功!但是今天我有同样的问题 - 并且奇怪的方式?

所以我研究MySQL的BUG-Report并发现问题......

不要在数据库名称中使用大写或下划线

所以我是:

  • 重命名我的数据库,
  • 在“模型概述”
  • 中更改模型的名称
  • 并更改默认架构的名称,请在“连接选项”中使用。

它有效! ...现在我必须在applicationconfig中更改数据库的名称......