插件是通过 Workbench GUI 向用户公开的特殊模块。这通常使用主菜单或上下文相关菜单来完成。许多 MySQL Workbench 功能是使用插件实现的;例如,表、视图和例程编辑器是原生 C++ 插件,正向和反向工程向导也是如此。MySQL Workbench 中的管理员工具完全作为 Python 中的插件实现。
插件可以是一个简单的功能,它对输入执行一些操作,并在没有与用户进一步交互的情况下结束。这方面的示例包括自动排列图表或对对象进行批量更改。要创建一个简单的插件,函数必须位于模块中并使用对象的
plugin
装饰器
声明为插件ModuleInfo
。
插件可以有无限期的运行时间,例如当它们由用户通过图形用户界面驱动时。MySQL Workbench 中的对象编辑器和向导就是这种情况。虽然必须以通常的方式声明向导类型的插件,但只需要在插件函数中执行插件的入口点,因为大多数附加功能将作为用户与 GUI 交互的结果被调用.
重新加载插件需要重新启动 MySQL Workbench。
导入的插件文件(及其编译的对应文件)存储在这里:
表 C.3 用户插件文件位置
操作系统 | 文件路径 |
---|---|
视窗 | %AppData%\MySQL\Workbench\modules |
苹果系统 | ~用户名/Library/Application Support/MySQL/Workbench/modules |
Linux | ~用户名/.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>
在组列表中添加一个。