MySQL Shell 8.4  /  ...  /  支持 MySQL Shell 插件

5.8.2.5 支持 MySQL Shell 插件

若要将 第 10.3 节,“MySQL Shell 插件” 与命令行集成一起使用,则必须显式定义函数以供 CLI 支持。当在 MySQL Shell 插件中定义的对象已启用命令行集成时,启用的特定函数可用于 CLI 调用。当您向对象添加函数成员时,它们支持 cli 布尔选项。当 cli 设置为 true 时,该函数可从命令行集成获得。 cli 选项默认值为 false,因此函数无法从命令行集成获得,除非专门启用。任何具有启用 cli 选项的函数的对象都会导致其父对象也出现在命令行集成中。

若要使函数可通过命令行集成获得,请在添加扩展对象成员时将 cli 选项设置为 true。例如

shell.addExtensionObjectMember(object, "exampleFunction", exampleFunction,
                      {
                        brief:"Retrieves brief information",
                        details: ["Retrieves detailed information"],
                        cli: true,    
                        parameters:
                        [
                          {
                            name: "param_a",
                            type: "string",
                            brief: "param_a brief"
                          }
                        ]
                      });

然后,您可以从命令行集成使用 exampleFunction() 函数,如下所示

mysqlsh -- customObj exampleFunction 1

如果您使用早于 8.0.24 的 MySQL Shell 版本添加了扩展对象成员,并且希望将其与命令行集成一起使用,则必须启用 cli 选项。使用此处所示的 addExtensionObjectMember 方法再次添加对象成员,这次启用 cli 选项。