MySQL Workbench 手册  /  扩展 Workbench  /  插件和工具

C.3 插件和工具

插件是一种特殊的模块,通过 Workbench GUI 向用户公开。这通常使用主菜单或上下文相关菜单完成。许多 MySQL Workbench 功能都是使用插件实现的;例如,表、视图和例程编辑器是原生 C++ 插件,正向和反向工程向导也是如此。MySQL Workbench 中的管理员工具完全是用 Python 实现的插件。

插件可以是一个简单的函数,它对输入执行某些操作,并在没有与用户进一步交互的情况下结束。这方面的例子包括自动排列图表或对对象进行批量更改。要创建一个简单的插件,该函数必须位于一个模块中,并使用 ModuleInfo 对象的 plugin 装饰器声明为插件。

插件可以具有无限的运行时间,例如当它们通过图形用户界面由用户驱动时。MySQL Workbench 中的对象编辑器和向导就是这种情况。虽然必须以通常的方式声明向导类型的插件,但只需要在插件函数中执行插件的入口点,因为大多数其他功能将作为用户与 GUI 交互的结果被调用。

注意

重新加载插件需要重新启动 MySQL Workbench。

导入的插件文件(及其编译后的对应文件)存储在此处

表 C.3 用户插件文件位置

操作系统 文件路径
Windows %AppData%\MySQL\Workbench\modules
macOS ~username/Library/Application Support/MySQL/Workbench/modules
Linux ~username/.mysql/workbench/modules

使用以下语法声明插件

@ModuleInfo.plugin(plugin_name, caption, [input], [groups], [pluginMenu])

这些参数定义如下

  • plugin_name:插件的唯一名称。它只能包含字母数字字符、点和下划线。

  • caption:用于菜单中插件的标题。

  • input:可选的输入参数列表。

  • groups:插件所属的可选组列表。识别的值为

    • Overview/Utility:模型概览中的“上下文”菜单。

    • Model/Utility:图表对象的菜单。

    • Menu/<category>:主菜单中“插件”菜单下的子菜单。

  • pluginMenu:插件应显示在“插件”菜单中的可选子菜单名称。例如,“目录”、“对象”、“实用程序”。这相当于在组列表中添加 Menu/<category>