MySQL Workbench反向工程师不会导入某些表

时间:2013-12-05 06:53:03

标签: mysql sql reverse workbench

我正在尝试学习一些个人项目的mysql,php,apache和yii,希望能扩展到商业化的东西。

我正在MySQL工作台上设计架构并将其工程设计到本地MySQL服务器。到目前为止一切都很好。我的想法是在服务器中开发和更新数据库,然后进行逆向工程或与Workbench同步,以便在图表中查看它。但是当我尝试对数据库进行逆向工程时,没有导入任何表(实际上它们是由Workbench本身创建的。

我尝试解决问题并在服务器上创建了一个数据库,只有一个表,其中只有一列,这是VARCHAR数据类型。该数据库经过逆向工程而没有出现故障。但是当我尝试向它添加一个INT和一个DATETIME列时,它会碰到一堵墙:

Windows版本的MySQL Workbench(6.0.8)

    WARNING: Mapping failed for datatype `int(11)`
    WARNING: Mapping failed for datatype `datetime`

MySQL Workbench的Linux版本(6.0.8)

    ERROR: Line 5: SQL syntax error near 'int(11) NOT NULL,
      `name` varchar(20) DEFAULT NULL,
      `insertDate` datetime DEF'. Statement skipped.

(MySQL服务器版本14.14 Distrib 5.5.34 /在Ubuntu 12.04 LTS框上)

当我尝试添加,更新和删除行时,我应该添加表本身非常正常。

关于我做错了什么的想法?

编辑 - 基于peterm的回应,

我实际上也尝试将模型与数据库同步而不是reverse engineering,这也不起作用(我打算发布一些图片,但由于声誉不佳而无法发布)。在Source部分下,它显示一个黄色感叹号和N / A,即使我已经三次检查表是否存在。实际上,它是由MySQL Workbench本身创建的!

在peterm的回复之后,我重复了同步过程以截取屏幕截图。在这样做时我注意到了别的东西。当我尝试通过MySQL Workbench更新表时,它会抛出错误:

Error parsing DDL for `test2`.`inttest` 
There was an error while parsing the DDL retrieved from the server.
Do you want to view the DDL or cancel processing it? 

当我点击View DDL时,它会显示表格创建脚本,但INTVARCHAR个关键字是小写的。

我不是专家,但不应该使用int和varchars大写吗?

这就是 - 当我尝试在打开的窗口上编辑DDL(最后一个屏幕截图)时,MySQL工作台关闭,它还会使用flash player冻结firefox选项卡。它还会关闭我的Windows虚拟机。

1 个答案:

答案 0 :(得分:3)

由于您之前创建的模型使用Database -> Syncronize Model而不是Reverse Engineer

在对话框Model and Database Differences中,选择Update Model,然后点击Continue

MySQL Workbench Synchronize Model