MySQL Shell 9.0  /  ...  /  创建 MySQL Shell 报告

10.1.1 创建 MySQL Shell 报告

您可以在任何一种支持的脚本语言(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 以表格格式显示输出,如果在 \show\watch 命令中指定了 --vertical--E 选项,则以垂直格式显示。行的值将转换为项目的字符串表示形式。如果某一行的元素少于列名数量,则缺少的元素将被视为 NULL。如果某一行的元素多于列名数量,则多余的元素将被忽略。注册此报告时,请使用类型 list

报告类型

以包含单个项目的列表的形式返回自由格式的输出。MySQL Shell 使用 YAML 显示此输出。注册此报告时,请使用类型 report

打印类型

将输出直接打印到屏幕,并返回一个空列表给 MySQL Shell,以表明输出已显示。注册此报告时,请使用类型 print

为了提供输出,报告的 API 函数必须返回一个包含键 report 的字典,以及一个 JSON 对象列表,每个对象对应于返回列表中的一个项目。对于列表类型,请为每个列表使用一个元素;对于报告类型,请使用一个元素;对于打印类型,请不要使用任何元素。