序列化仅在商业版上可用(仅在自托管计划上)。
许多客户在迁移到本地部署的商业版时,需要上载预定义的问题或仪表板,以设置新的Metabase实例或新的数据库连接。本文将介绍如何:
具体来说,我们将使用dump和loadMetabase中的命令序列化功能执行第2步和第3步,再加上一点手动管理导出的文件。
我们将使用Docker运行我们的Metabase环境,并使用开源PostgresSQL为了我们应用程序数据库。我们不建议使用默认值H2用于生产的数据库(H2随Metabase一起提供,因为它是一个轻量级数据库,使用Metabase很容易让用户启动和运行)
我们将创建一个Metabase实例(我们的原始环境),创建一个仪表板,并将该仪表板加载到一个新的Metabase实例(我们的目标环境)中。计划如下:
你需要Docker安装在您的计算机上。
要创建名为“metanet”的专用网络,请从您选择的终端运行以下命令:
docker network create metanet
您可以确认网络是用以下方式创建的:
docker network ls
网络将有一个本地作用域和一个网桥驱动程序。
启动两个称为origin和target(尽管你可以随意命名这些环境)。请注意,我们使用--rm -d在创建这些Docker容器时,当您停止它们并在后台运行时,它们都会被移除。请随意更改这些标志以修改该行为。
创建Postgres数据库:
docker run --rm -d --name postgres \
-p 5433:5432 \
-e POSTGRES_USER=metabase \
-e POSTGRES_PASSWORD=knockknock \
--network metanet \
postgres:12
创建Metabase源实例,并将其连接到我们刚刚创建的Postgres数据库:
docker run --rm -d --name metabase-origin \
-p 5001:3000 \
-e MB_DB_TYPE=postgres \
-e MB_DB_DBNAME=metabase \