插件是一种特殊的模块,通过 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>
。