多个 MySQL Workbench 同步问题

Multiple MySQL Workbench Synchronizing issues

我刚开始使用 MySQL Workbench,我在同步时遇到了多个问题。

我使用 Workbench 对模式进行建模并对其进行正向工程,并 运行 在数据库服务器中成功地完成了它。后来编辑了一个Trigger,尝试和数据库服务器同步

所以我去了Database -> Synchronize Model...

我只编辑了一个触发器(只是将 +1 添加到触发器中已经存在的变量)但是正如您所看到的,它表明所有表都必须是 changed/updated(有一点黄色感叹号)。 应该不对吧?

当我单击 continue 时,我注意到在生成的脚本中它正在删除外键并再次添加它们。

当我点击 Execute 时,显示错误:

ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Default Collation' at line 1

此外,它为架构和表的所有 ALTER 语句添加了 DEFAULT COLLATE Default Collation,这导致 error 1064

ALTER SCHEMA `myschema`  DEFAULT COLLATE Default Collation ;

.....
.....

.....

ALTER TABLE `table1` 
COLLATE = Default Collation ;

ALTER TABLE `table2` 
COLLATE = Default Collation ;

ALTER TABLE `table3` 
COLLATE = Default Collation ;
....
....
....
....

MySQL 社区版:8.0.19

MySQL Workbench: 8.0.19

macOS:卡特琳娜 10.15.3

我研究了其他关于 error: 1064 的 SO 帖子,许多人建议更改版本。所以,我也在Workbench Model -> Model Options... -> MySQL -> Target MySQL Version: 8.0.19 中更改了MySQL 版本,但仍然存在错误。

我是漏掉了什么还是做错了什么?

我尝试(反过来)将模型(作为目标)与数据库服务器(作为源)同步,以确保至少数据库服务器符合预期。所以,当我这样做时,EER 图中的所有外键都被删除了。

我在数据库服务器上检查过是否有使用这个 post 的外键,服务器上的一切都很好。

我不知道它是应该像这样还是只是一个黑客,但事实是,我至少现在得到了我想要的东西。

我使用了试错法。所以,我不知道为什么或如何工作。

打开 workbench,从数据库服务器获取架构,编辑 workbench 中的架构并同步。这样即使有人在服务器上进行了更改,您也可以获得最新版本的架构。

前往 Database -> Reverse Engineer。它根据您的数据库服务器架构创建 EER 图。

生成 EER 图后,尝试编辑更改并转到 Database -> Synchronize Model..。现在您只有 黄色感叹号 在您修改的 table 名称之前(而不是像您所说的在所有 table 之前)

此外,当我这样做时,最终脚本中没有 DEFAULT COLLATE Default Collation 行或外键删除和添加行。最终的脚本只包含了需要的部分。

希望对你也有用。