我在Linux Debian(3.2.41-2)上尝试更改MySQL Workbench (5.2.40, rev 8790)内的EER模型中现有表的排序时遇到麻烦。
我的修改脚本是这样的:
ALTER TABLE `my_db`.`articles` COLLATE = utf8_general_ci;
ALTER TABLE `my_db`.`articles_tags` COLLATE = utf8_general_ci;
ALTER TABLE `my_db`.`articles_tags_assignment` COLLATE = utf8_general_ci;
等。对于大约数百个表。
当我进入File> Import> Reverse Engineer MySQL Create Script…选择上面描述的脚本,按"Execute",显示"Import finished"。
但实际上当我去数据库> 同步模型…点击所有细节并查看差异…然后我看到它仍然认为我的EER模型有旧的排序(latin1_swedish_ci)。
我做错了什么,或者我应该只是报告这个错误在MySQL工作台?
正如菜单项所说,MySQL工作台需要一个创建脚本,这是一个包含create语句的脚本。如果您只想更改少数排序规则,只需在表编辑器中执行即可。大规模更改有点困难,因为您只能在脚本中使用插件。有一个插件用于更改所有表的存储引擎。
我不是100%确定这将工作,但值得一试,如果有人试图实现类似于上面的东西:
- 使用"forward engineer"创建模型中描述的数据库实例
- 在创建的实例上执行alter脚本
- 使用"synchronize model"并将所有动作更改为"update model"以将更改导入工作台