MySQL Workbench 手册  /  扩展 Workbench  /  GRT 和 Workbench 数据组织

C.1 GRT 和 Workbench 数据组织

通用运行时 (GRT) 是 MySQL Workbench 用于保存模型文档数据的内部系统。它也是 Workbench 与模块和插件交互的机制。Workbench 模型数据(例如图表、模式和表)存储在一个对象层次结构中,任何插件都可以访问该层次结构。信息使用标准数据类型表示:整数、双精度数、字符串、字典、列表和对象。

可以使用 Python 脚本语言访问 GRT。需要注意 GRT 数据类型如何映射到 Python。例如,GRT 整数、双精度数和字符串数据类型被视为相应的 Python 数据类型。列表和字典保留在其内部表示形式中,但通常可以将它们视为 Python 列表和字典,并以通常的方式访问它们。对象包含数据字段和方法,但 GRT 仅识别来自预注册类层次结构的对象。

可以使用 Workbench 脚本 Shell 完整检查 GRT 中包含的类。类名中的点在其 Python 对应项中更改为下划线。例如,db.mysql.Table 在 Python 中变为 db_mysql_Table

应用程序对象树(GRT 树)

如前所述,MySQL Workbench 文档数据存储在对象层次结构中。此层次结构称为 GRT 树。可以使用 Python 或 C++ 访问和修改 GRT 树。修改 GRT 树时要小心,因为错误会导致文档损坏。在操作树之前应进行备份。对树的只读访问是最安全的方法,并且在大多数情况下就足够了。

应用程序对象树中的主要节点

表 C.1 应用程序对象树中的主要节点

节点 描述
wb.registry 应用程序数据,例如插件注册表、编辑器列表和选项。
wb.customData 用于存储您自己的数据的通用字典。此字典与 Workbench 一起保存和重新加载,并且是全局的(不是特定于文档的)。
wb.options 包含 Workbench 使用的一些默认选项。
wb.rdbmsMgmt 支持的 RDBMS 模块的内部注册表,已知数据类型。
wb.doc 当前加载的模型文档。
wb.doc.physicalModels[0] 当前加载的模型对象,包含数据库目录和图表。
wb.doc.physicalModels[0].catalog 模型的数据库目录。包含模式列表。
wb.doc.physicalModels[0]catalog.schemata 模型中的模式列表。可以作为列表访问单个模式:schemata[0]、schemata[1] ...
wb.doc.physicalModels[0].catalog.schemata[0].tables (.views, .routines, ...) 模式中的表、视图、例程列表。
wb.doc.physicalModels[0].diagrams 模型中的 EER 图表列表。
wb.doc.physicalModels[0].diagrams[0].figures (.layers, .connections, ...) 图表中的图形、层、连接(关系)列表。