多个环境
用于启动开发、暂存或测试环境的选项。
一旦您开始 在生产环境中运行 Metabase,您可能希望在单独的环境中进行测试和开发。对于大多数团队来说,这意味着复制生产环境中的部分(或全部)图表和仪表盘,对这些副本进行更改,然后选择性地将这些更改推送回生产环境。
对于希望一次性对多个 Metabase 项目或设置进行编程更改的团队来说,最好为 每个环境设置一个实例。您还可以通过为 仪表盘维护 创建每个环境一个集合来模拟开发和生产环境。
每个环境一个实例
要为每个环境设置一个实例,您需要一个自托管的 Pro 或 Enterprise 计划。由于自托管的 Pro 和 Enterprise 计划方便地按帐户收费,您可以根据需要启动任意数量的 Metabase 实例,而无需额外付费。
要基于生产 Metabase 启动新环境,您将使用 Metabase 的 序列化 功能来创建图表、仪表盘和设置的导出。您还可以在将导出的 YAML 文件导入到新的 Metabase 暂存实例之前对其进行编辑。例如,您可以创建一套带有品牌化的仪表盘模板,用于填充任何新环境。
当需要将更改从暂存环境推送回生产环境时,您的团队将使用相同的序列化过程从暂存环境导出并将其导入到生产环境。您还可以设置自己的集成测试,以避免导入任何可能破坏生产实例的内容。
示例:创建自托管暂存实例
假设您的 Metabase 生产实例在 Docker 或类似容器中运行
- 备份用于生产实例的应用程序数据库。
- 创建一个名为 staging 的新容器。
-
从 staging 容器中,使用以下设置启动新的 Metabase
- 使用适当的 环境变量 连接到您的生产应用程序数据库。
- 使用
MB_PREMIUM_EMBEDDING_TOKEN
添加您的许可证密钥。 - 包括与您的生产实例匹配的版本标签(例如
metabase/metabase-enterprise:v1.53.2
)。
- 一旦 Metabase 在 staging 容器中运行,请运行序列化 导出 命令。
- 将导出内容持久化到您想要的任何对象存储中。
- 可选:编辑导出内容的 YAML 文件。例如,您可以运行脚本将
ID = 1
替换为ID = 2
。 - 重启 staging 容器。
- 从 staging 容器中,创建一个新的应用程序数据库。
-
使用序列化 [import](/docs/latest/installation-and-operation/serialization 命令启动 Metabase
- 使用适当的 环境变量 连接到新的应用程序数据库。
- 使用
MB_PREMIUM_EMBEDDING_TOKEN
添加您的许可证密钥。 - 包括与您的生产实例匹配的版本标签(例如
metabase/metabase-enterprise:v1.53.2
)。
确切步骤将取决于您的部署。如果您遇到困难,您可以随时咨询我们的成功工程师!
每个集合一个环境
要在不进行序列化的情况下管理对 Metabase 仪表盘的更改,您可以改用 集合、集合权限 和 历史记录。
示例:创建生产和开发集合
以下是如何设置每个集合一个“环境”的示例
- 创建两个名为 生产 和 开发 的 集合。
- 创建两个名为 最终用户 和 开发者 的 组。
- 设置每个组的集合权限
- 开发者 可以 策展 生产 和 开发 集合。
- 最终用户 可以 查看 生产 集合。
- 可选:设置每个组的数据权限。例如
- 开发者 可以 查询构建器和原生 SQL 访问 开发 和 生产 集合中使用的表或数据库。
- 最终用户 可以 沙盒 访问 生产 集合中使用的表或数据库。
开发者组的成员可以复制和移动 生产 到 开发 集合之间的项目,以便在不公开正在进行的工作的情况下进行更改。用户还可以使用项目的历史记录查看和恢复更改。
延伸阅读
下一步:序列化:在新 Metabase 实例中预加载仪表盘
如何使用 Metabase 的序列化功能将问题、仪表盘、集合、设置等从一个 Metabase 实例复制到新的 Metabase 实例。