MySQL 工作台 / 附录 C 扩展工作台 /
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, ...) | 图表中的图形、层、连接(关系)列表。 |