多个 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
行或外键删除和添加行。最终的脚本只包含了需要的部分。
希望对你也有用。
我刚开始使用 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
行或外键删除和添加行。最终的脚本只包含了需要的部分。
希望对你也有用。