动作简介

目前,操作仅适用于PostgreSQL和MySQL。

Example action

操作是什么?

操作是Metabase中的实体,允许您构建自定义表单和业务逻辑。

操作允许您编写写入数据库的参数化SQL。操作可以附加到仪表板上的按钮以创建自定义工作流程。您甚至可以公开分享操作生成的参数化表单以收集数据。

以下是一些您可以使用动作执行的想法。

  • 在仪表板上将您正在查看的客户标记为VIP。
  • 让团队成员移除冗余数据。
  • 创建客户反馈表单并将其嵌入到您的网站上。

必须将动作添加到模型中,但动作只在支持这些模型的原始表上运行(因此动作永远不会编辑您的模型定义)。

启用数据库中的动作

为了使动作正常工作,您需要先完成以下两个步骤:

  1. 为数据库连接启用模型动作。要为数据库连接启用动作,管理员应点击右上角的齿轮图标,导航到管理设置 > 数据库,然后点击您要为它创建动作的数据库。在连接设置表单的右侧,切换到模型动作选项。为了使动作正常工作,数据库用户帐户(您用于连接数据库的帐户)必须拥有写入权限。目前,动作仅支持PostgreSQL和MySQL数据库。
  2. 从该数据库创建至少一个模型。动作与模型相关联,因此您在开始创建动作之前需要创建(或有权访问)至少一个模型。

谁可以使用动作

  • 要创建或编辑动作,此人必须在具有相关数据库原生查询编辑权限的组中。
  • 要运行动作,您只需要对动作的模型或仪表板(或公共动作的链接)有查看权限。

动作类型

有两种类型的动作

运行动作

有多种方式可以运行动作

动作会更改表中的数据,从而影响模型

在此澄清一下:虽然动作添加到模型中,但它们对模型查询的基础表进行更改。这意味着任何有权访问基础表或基于该表的问题或其他模型的人都可以看到动作的影响。连接到该数据库的其他工具也会捕获这些更改。

在这种情况下,模型是动作的容器;模型是组织动作的方式。实际上,您可以在理论上将一个自定义动作添加到执行与模型数据无关的某些更新的模型中。例如,您可以编写一个自定义动作来更新Accounts表,并将其添加到仅查询不相关表(例如,Orders表)的模型中。但是,除非您有非常好的理由,否则请不要这样做。(基本动作目前仅适用于包装单个原始表的模型)。

在生产环境中使用动作之前,请考虑在样本数据(如Metabase中包含的样本数据库)上尝试使用动作,以了解它们的工作方式。

动作注意事项

  • 如果启用了相关表或模型的缓存,您可能需要等到Metabase刷新数据(尽管您始终可以手动刷新数据)才能在Metabase中看到动作的效果。
  • 在创建缺少自动生成主键的表上的记录时,您需要输入一个可用的ID(即尚未由其他记录使用的ID)。
  • 您无法“撤销”操作。然而,您可以创建并运行一个操作来重新创建已删除的记录,或者将已更新的记录变回其原始值(前提是您知道原始值)。
  • 公共仪表板和静态嵌入中的仪表板无法使用操作。

进一步阅读

阅读关于其他Metabase版本的文档。

想要改进这些文档?提出更改建议。