MySQL 工作台  / 附录 C 扩展工作台  /  C.1 GRT 和工作台数据组织

C.1 GRT 和工作台数据组织

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

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

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

应用程序对象树(GRT 树)

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

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

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

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