您可以使用受支持的脚本语言(JavaScript 和 Python)为 MySQL Shell 创建和注册用户定义的报告。报告工具使用相同的 API 前端方案处理内置报告和用户定义的报告。
报告可以指定它们接受的特定于报告的选项列表,还可以接受指定数量的附加参数。您的报告可以支持这两种输入,也可以支持其中一种,也可以不支持其中任何一种。当您请求报告帮助时,MySQL Shell 会提供选项和参数的列表,以及注册报告时提供的任何可用描述。
签名
要注册为 MySQL Shell 报告的 Python 或 JavaScript 函数的签名必须如下:
Dict report(Session session, List argv, Dict options);
在哪里:
session
是用于执行报告的 MySQL Shell 会话对象。argv
是一个可选列表,其中包含传递给报告的附加参数的字符串值。options
是一个可选字典,其中的键名称和值对应于任何特定于报告的选项及其值。
报告类型
报告函数应以特定格式返回数据,具体取决于您注册时使用的类型:
-
列表类型
以列表列表的形式返回输出,第一个列表由列名称组成,其余列表由行内容组成。MySQL Shell 默认以表格格式显示输出,如果在or命令上指定了
--vertical
or 选项,则以垂直格式显示输出 。行的值将转换为项目的字符串表示形式。如果行的元素少于列名的数量,则缺少的元素将被视为 NULL。如果行的元素多于列名的数量,则多余的元素将被忽略。当您注册此报告时,请使用“列表”类型 。--E``\show``\watch
-
报告类型
以包含单个项目的列表形式返回自由格式的输出。MySQL Shell 使用 YAML 显示此输出。当您注册此报告时,请使用“报告”类型 。
-
打印类型
将输出直接打印到屏幕,并向 MySQL Shell 返回一个空列表以表明输出已经显示。当您注册此报告时,请使用“打印”类型。
为了提供输出,报告的 API 函数必须返回一个带有 key 的字典report
和一个 JSON 对象列表,每个对象对应返回列表中的每一项。对于列表类型,每个列表使用一个元素;对于报告类型,使用单个元素;对于打印类型,不使用任何元素。