Documentation Home
MySQL 外壳 8.0  / 第 10 章扩展 MySQL Shell  / 10.1 使用 MySQL Shell 报告  /  10.1.1 创建 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 默认以表格格式显示输出,如果在or 命令上指定了--verticalor --E选项,则以 垂直格式显示输出。行的值被转换为项目的字符串表示形式。如果一行中的元素少于列名的数量,则认为缺少的元素为 NULL。如果一行的元素多于列名的数量,则多余的元素将被忽略。注册此报告时,请使用类型 \show\watch清单

报告类型

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

打印类型

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

要提供输出,报告的 API 函数必须返回一个带有键的字典report,以及一个 JSON 对象列表,一个对象对应返回列表中的每一项。对于 List 类型,每个列表使用一个元素,对于 Report 类型使用单个元素,对于 Print 类型不使用任何元素。