多个环境

启动开发、测试或测试环境的选择

一旦您开始在生产环境中运行Metabase,您可能会想要在单独的环境中测试和开发。对于大多数团队来说,这意味着复制生产环境中的一些(或所有)图表和仪表板,修改这些副本,然后可选地将这些更改推回生产环境。

对于想要同时编程更改许多Metabase项目或设置的团队,最好为每个环境设置一个实例。每个环境一个实例。您还可以通过创建每个环境一个集合来模拟开发和生产环境,以进行仪表板维护

每个环境一个实例

为了为您的每个环境设置一个实例,您需要一个自托管专业或企业计划。由于自托管专业和企业计划方便地按账户计费,您可以免费启动任意数量的Metabase实例。

要基于您的生产Metabase建立新环境,您将使用Metabase的序列化功能来创建图表、仪表板和设置的导出。您还可以在导入到新的Metabase预发布实例之前编辑导出的YAML文件。例如,您可以创建一组具有品牌的仪表板模板,用于填充任何新环境。

当您需要将更改从预发布环境推回生产环境时,您的团队将使用相同的序列化过程从预发布环境导出,并将其导入到生产环境中。您还可以设置自己的集成测试,以避免导入可能破坏生产实例的任何内容。

示例:创建自托管预发布实例

假设您的Metabase生产实例正在Docker或类似容器上运行

  1. 备份用于生产实例的应用程序数据库。
  2. 创建一个名为预发布的新容器。
  3. 预发布容器开始,使用以下设置启动新的Metabase

    • 使用适当的环境变量连接到生产应用程序数据库。
    • 使用MB_PREMIUM_EMBEDDING_TOKEN添加您的许可证密钥。
    • 包含与生产实例匹配的版本标签(例如metabase/metabase-enterprise:v1.51.2)。
  4. 一旦Metabase在预发布容器中运行,运行序列化导出命令。
  5. 将导出持久化到您想要的任何对象存储。
  6. 可选:编辑导出的YAML文件。例如,您可以运行脚本将ID = 1替换为ID = 2
  7. 重新启动预发布容器。
  8. 预发布容器创建新的应用程序数据库。
  9. 使用序列化[导入](/docs/latest/installation-and-operation/serialization命令启动Metabase

    • 使用适当的环境变量连接到新的应用程序数据库。
    • 使用MB_PREMIUM_EMBEDDING_TOKEN添加您的许可证密钥。
    • 包含与生产实例匹配的版本标签(例如metabase/metabase-enterprise:v1.51.2)。

具体步骤将取决于您的部署。如果您遇到困难,您始终可以询问我们的成功工程师

每个环境一个集合

要在不使用序列化的情况下管理Metabase仪表板的更改,您可以使用集合集合权限历史记录

示例:创建生产环境和开发环境集合

以下是如何为每个集合设置一个“环境”的示例

  1. 创建两个名为生产开发的集合。
  2. 创建两个名为最终用户开发者的组。
  3. 按组设置 集合权限
    • 开发者 可以 管理 生产开发 集合。
    • 最终用户 可以 查看 生产 集合。
  4. 可选:按组设置 数据权限。例如
    • 开发者 可以通过 查询构建器和原生 方式访问 开发生产 集合中使用的表或数据库。
    • 最终用户 可以获得对 生产 集合中使用的表或数据库的 沙盒 访问。

开发者组的成员可以在不暴露工作进度的前提下,在 生产开发 集合之间 复制移动 项目。人们还可以使用项目的 历史记录 查看和撤销更改。

进一步阅读

下一节:序列化:在新 Metabase 实例中预加载仪表板

如何使用 Metabase 的序列化功能将问题、仪表板、集合、设置等从 Metabase 实例复制到新 Metabase 实例。

下一篇文章