序列化
序列化功能仅适用于专业版(Pro)和企业版(Enterprise)方案(包括自托管和Metabase云版)。
当您真正开始使用Metabase时,通常会启动多个Metabase实例。您可能有两个测试或开发实例和几个生产实例,或者您可能为每个办公室或区域设置了一个独立的Metabase。
为了帮助您应对这种情况,Metabase提供了一个序列化功能,允许您创建Metabase内容的导出,然后将其导入到一个或多个Metabase实例中。
导出会将您的源Metabase内容序列化为YAML文件。
导入将读取这些导出的YAML文件,并根据这些YAML文件中序列化的内容,在目标Metabase中创建或更新项目。
运行这些export
和import
命令有两种方式:
我们很乐意了解如何改进序列化以适应您的工作流程。为现有问题投票,让我们知道这对您很重要。如果尚未存在相关问题,请创建一个并告诉我们您的需求。
序列化用例
- 预生产环境。通过从Metabase的预生产实例导出重要仪表盘,然后将其导入到您的生产实例中,实现预生产到生产的工作流程。
- 版本控制。将导出的文件检入版本控制并审计其更改,因为导出中包含的YAML文件具有良好的可读性。
- 将资产复制到其他Metabase实例。从源Metabase导出“模板”数据,并将其导入到一个或多个目标实例。
请查阅我们的指南:
序列化不适用于在同一Metabase实例内复制资产或交换数据源等用例。如果您正在使用序列化在同一实例内复制资产,请查看导出工作原理、导入工作原理以及序列化的其他用途中针对您用例的说明。
导出工作原理
导出内容
Metabase将仅导出以下实体:
- 集合(但个人集合不会被导出,除非通过导出选项明确指定)
- 仪表盘
- 已保存问题
- 操作
- 模型
- 指标
- 片段
- 数据模型和表元数据
- 段
- 问题和仪表盘的公共共享设置
- 通用Metabase设置
- 事件和时间线
- 数据库连接字符串(仅当通过导出选项指定时)。
所有其他实体——包括用户、组、权限、警报、订阅——都不会被导出。
Metabase会将其工件导出到一个YAML文件目录。导出内容包括:
-
包含各种Metabase实体YAML文件的目录。根据您导出的内容和Metabase中的内容,导出示例可能包含以下目录:
- actions
- collections
- cards
- dashboards
- timelines
- databases
通过API进行序列化时,导出目录将被压缩成.tar.gz文件。
-
一个包含某些Metabase全局设置的
settings.yaml
文件
默认不包含数据库连接详情,但您可以配置导出以包含它们。
导出的通用Metabase设置
以下是Metabase在settings.yaml
文件中导出的通用设置列表。有关Metabase设置的更多信息,请参阅配置Metabase。
humanization-strategy
native-query-autocomplete-match-style
site-locale
report-timezone-short
report-timezone-long
application-name
enable-xrays
show-homepage-pin-message
source-address-header
enable-nested-queries
custom-geojson-enabled
start-of-week
custom-geojson
available-timezones
unaggregated-query-row-limit
aggregated-query-row-limit
hide-embed-branding?
search-typeahead-enabled
enable-sandboxes?
application-font
available-locales
landing-page
enable-embedding
application-colors
application-logo-url
application-favicon-url
show-homepage-xrays
show-metabot
enable-whitelabeling?
show-homepage-data
site-name
application-font-files
loading-message
report-timezone
persisted-models-enabled
enable-content-management?
subscription-allowed-domains
breakout-bins-num
available-fonts
custom-formatting
自定义导出内容
您可以自定义导出内容。您可以告诉Metabase:
- 导出特定集合
- 不导出集合
- 不导出Metabase设置
- 不导出表元数据
- 包含示例字段值(默认排除)
- 包含数据库连接详情(默认排除)
序列化问题示例
问题可在集合目录的cards
目录中找到。以下是一个使用SQL编写的问题的示例卡片YAML文件,该问题使用了字段筛选器并具有面积图可视化。
为保留原生查询的多行格式,请移除原生查询中的尾随空格。如果您的原生查询有尾随空格,YAML会将其转换为单个字符串字面量(这仅影响显示,不影响功能)。
name: Products by week
description: Area chart of products created by week
entity_id: r6vC_vLmo9zG6_r9sAuYG
created_at: "2024-05-08T19:10:24.348808Z"
creator_id: admin@metabase.local
display: area
archived: false
collection_id: onou5H28Wvy3kWnjxxdKQ
collection_preview: true
collection_position: null
query_type: native
dataset: false
cache_ttl: null
database_id: Sample Database
table_id: null
enable_embedding: false
embedding_params: null
made_public_by_id: null
public_uuid: null
parameters:
- default:
- Gizmo
id: c37d2f38-05fa-48c4-a208-19d9dba803c6
name: Pick a category
slug: category_filter
target:
- dimension
- - template-tag
- category_filter
type: string/=
parameter_mappings: []
dataset_query:
database: Sample Database
native:
query: |-
SELECT
category,
date_trunc ('week', created_at) AS "Week",
count(*) AS "Count"
FROM
products
WHERE
GROUP BY
category,
"Week"
template-tags:
category_filter:
default:
- Gizmo
dimension:
- field
- - Sample Database
- PUBLIC
- PRODUCTS
- CATEGORY
- base-type: type/Text
display-name: Pick a category
id: c37d2f38-05fa-48c4-a208-19d9dba803c6
name: category_filter
type: dimension
widget-type: string/=
type: native
result_metadata:
- base_type: type/Text
display_name: CATEGORY
effective_type: type/Text
field_ref:
- field
- CATEGORY
- base-type: type/Text
name: CATEGORY
semantic_type: null
- base_type: type/DateTime
display_name: Week
effective_type: type/DateTime
field_ref:
- field
- Week
- base-type: type/DateTime
name: Week
semantic_type: null
- base_type: type/BigInteger
display_name: Count
effective_type: type/BigInteger
field_ref:
- field
- Count
- base-type: type/BigInteger
name: Count
semantic_type: type/Quantity
visualization_settings:
column_settings: null
graph.dimensions:
- Week
- CATEGORY
graph.metrics:
- Count
serdes/meta:
- id: r6vC_vLmo9zG6_r9sAuYG
label: products_created_by_week
model: Card
initially_published_at: null
metabase_version: v1.49.7 (f0ff786)
type: question
Metabase使用实体ID识别和引用Metabase项目
Metabase为每个Metabase项目(仪表盘、问题、模型、集合等)分配一个唯一的实体ID。这些实体ID是Metabase生成的顺序ID之外的附加ID。实体ID使用NanoID格式,并且在不同的Metabase实例之间是稳定的。所谓“稳定”是指,例如,您可以从一个Metabase导出带有实体ID的仪表盘,然后将其导入到另一个Metabase,并让该仪表盘使用相同的实体ID,即使它位于不同的Metabase中。
要在Metabase中获取项目的实体ID:
- 在Metabase中访问该项目。
- 点击信息按钮。
- 在概览选项卡中,复制实体ID。
您也可以在导出的YAML文件中,在entity_id
字段中看到项目的实体ID。例如,在序列化问题示例中,您将看到该问题的实体ID:
entity_id: r6vC_vLmo9zG6_r9sAuYG
此ID也出现在serdes/meta → id
字段中(这些ID必须匹配)。
serdes/meta:
- id: r6vC_vLmo9zG6_r9sAuYG
为区分同名实体,Metabase在导出实体的文件名和目录名中包含实体ID。
r6vC_vLmo9zG6_r9sAuYG_products_by_week.yaml
IA96oUzmUbYfNFl0GzhRj_accounts_model.yaml
KUEGiWvoBFEc5oGQCEnPg_converted_customers.yaml
例如,在上面的序列化问题示例中,您可以看到字段collection_id
:
collection_id: onou5H28Wvy3kWnjxxdKQ
此ID指的是问题保存到的集合。在实际导出中,您将能够找到此集合的YAML文件,其名称以其ID开头:onou5H28Wvy3kWnjxxdKQ
。
实体ID与嵌入功能配合使用
Metabase支持在静态嵌入、交互式嵌入和嵌入式分析SDK中使用问题、仪表盘和集合的实体ID。
在您的应用程序中嵌入Metabase时,使用实体ID的高级工作流程大致如下:
- 在您本地运行的Metabase中创建一个仪表盘。
- 在您的应用程序代码中使用实体ID,将仪表盘本地嵌入到您的应用程序中。
- 通过序列化将您的Metabase更改导出为YAML文件。
- 将您的Metabase更改(导出的YAML文件)导入到您的生产Metabase中。
- 由于实体ID在生产Metabase中保持不变,您只需将应用程序中的代码推送到生产环境,代码将引用正确的仪表盘。
数据库、模式、表和字段通过名称标识
默认情况下,Metabase会导出一些数据库和数据模型设置。导出默认不包含数据库连接字符串。您可以明确包含数据库连接字符串。您也可以选择完全排除数据模型。
Metabase在databases
目录中序列化数据库和表。它将包含每个数据库、表、字段、段和指标的YAML文件。
数据库、表和字段通过其名称引用(与Metabase特有的项目不同,后者通过实体ID引用)。
例如,在序列化问题示例中,有几个YAML键引用了“示例数据库”:
database_id: Sample Database
---
dataset_query:
database: Sample Database
在该示例的字段筛选器(category_filter:
)描述中,您可以看到用于填充筛选器选项的字段引用:
dimension:
- field
- - Sample Database
- PUBLIC
- PRODUCTS
- CATEGORY
它引用了Sample Database
中PUBLIC
模式下PRODUCTS
表中的CATEGORY
字段。databases
目录中序列化的Sample Database
也将包含此字段和表的YAML文件。
导入工作原理
在导入过程中,Metabase将读取提供的YAML文件并根据YAML规范创建项目。序列化问题示例展示了Metabase如何记录重建项目所需的信息。
导入期间,Metabase不会从目标实例中删除项目,但会覆盖已存在的项目。
Metabase依赖实体ID来确定要创建或覆盖哪些项目,以及项目之间的关系。当导入到已包含某些内容的实例时,请记住:
-
如果您导入的项目具有在目标Metabase中不存在的
entity_id
,Metabase将创建一个新项目。 -
如果您导入的项目具有在目标Metabase中已存在的
entity_id
,现有项目将被覆盖。特别是,这意味着如果您导出一个问题,然后在导出的YAML文件中进行更改——例如通过直接编辑
name
字段来重命名问题——然后将编辑后的文件导回,Metabase将尝试应用您对YAML所做的更改。 -
如果您导入的项目具有空白的
entity_id
,Metabase将创建一个新项目。在此情况下,任何serdes/meta → id
都将被忽略。 -
YAML中引用的所有项目和数据源必须已存在于目标Metabase中,或包含在导入中。
例如,如果导出的YAML具有字段
collection_id: onou5H28Wvy3kWnjxxdKQ
,那么集合onou5H28Wvy3kWnjxxdKQ
必须已存在于目标实例中,或者必须存在一个包含此ID集合导出的YAML文件。
序列化最佳实践
源实例和目标实例使用相同的Metabase版本
目前,序列化仅在源Metabase和目标Metabase具有相同主版本时才有效。如果您正在使用CLI序列化命令,则用于运行序列化命令的.jar文件版本也应与源和目标Metabase版本匹配。
如果您使用H2作为应用程序数据库,则在导入或导出前需要停止Metabase。
如果您使用Postgres或MySQL作为应用程序数据库,则可以在Metabase仍在运行时进行导入和导出。
避免将序列化用于备份
请注意:序列化并非旨在备份您的Metabase。
请参阅备份Metabase。
如果您是要从Metabase附带的默认H2数据库一次性迁移到MySQL/Postgres,请使用迁移指南。
您需要手动添加许可证令牌
Metabase在导出中排除了您的许可证令牌,因此如果您运行多个Metabase企业版环境,您需要手动将许可证令牌添加到目标Metabase实例中,可以通过Metabase用户界面,或通过环境变量。
Metabase在导出和导入中添加日志
导出:Metabase将日志作为export.log
添加到压缩目录中。
导入:您可以添加-o -
标志将日志直接导出到终端,或添加-o import.log
以保存到文件。
使用CLI命令进行序列化
要在Metabase云上序列化数据,请使用导入和导出API端点。
Metabase提供export
和import
CLI命令。
有关序列化的通用信息,请参阅导出工作原理、导入工作原理和序列化最佳实践。
使用CLI导出
要导出Metabase实例的内容,请切换到您正在运行Metabase JAR的目录并运行:
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar export dir_name
其中dir_name
可以是您想命名的目录名称。
export
选项
要查看export
选项列表,请使用help
命令:
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar help export
这将运行并打印如下内容:
export path & options
Serialize Metabase instance into directory at `path`.
Options:
-c, --collection ID Export only specified ID; may occur multiple times.
-C, --no-collections Do not export any content in collections.
-S, --no-settings Do not export settings.yaml
-D, --no-data-model Do not export any data model entities; useful for subsequent exports.
-f, --include-field-values Include field values along with field metadata.
-s, --include-database-secrets Include database connection details (in plain text; use caution).
--collection
默认情况下,Metabase会将所有集合(个人集合除外)包含在导出中。要包含个人集合,您必须使用--collection
标志明确添加它们。
--collection
标志(别名-c
)允许您通过ID指定一个或多个要包含在导出中的集合。您可以在集合的URL中找到集合ID,例如,对于位于your-metabase.com/collection/42-terraforming-progress
的集合,ID将是42
。
如果您想指定多个集合,请用逗号分隔ID。例如:
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar export export_name --collection 1,2,3
--no-collections
--no-collections
标志(别名-C
)告诉Metabase从导出中排除所有集合。
--no-settings
--no-settings
标志(别名-S
)告诉Metabase排除settings.yaml
文件,该文件包含网站范围的设置,默认情况下会导出该文件。
--no-data-model
--no-data-model
标志(别名-D
)告诉Metabase从导出中排除表元数据设置。管理员在“管理设置”的表元数据选项卡中定义元数据设置。
--include-field-values
--include-field-values
标志(别名-f
)告诉Metabase包含字段值的示例值,Metabase使用这些值来显示下拉菜单。默认情况下,Metabase会排除这些示例字段值。
--include-database-secrets
--include-database-secrets
标志(别名-s
)告诉Metabase包含连接详情,包括数据库用户名和密码。默认情况下,Metabase会排除这些数据库连接密钥。如果您不使用此标志,您将需要在目标Metabase中手动输入凭据。
使用CLI导入
要将导出的工件导入到Metabase实例中,请进入您正在运行目标Metabase(您要导入的Metabase)的目录,并使用以下命令,其中path_to_export
是您要导入的导出文件的路径:
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar import path_to_export
目前,您只能将导出的工件导入到与Metabase相同版本创建的Metabase实例中。
import
选项
大多数选项在从Metabase导出数据时定义。要查看导入标志列表,请运行:
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar help import
这将打印出:
import path & options
Load serialized Metabase instance as created by the [[export]] command from directory `path`.
通过API进行序列化
与CLI序列化命令一样,这些端点仅适用于专业版(Pro)和企业版(Enterprise)方案。
您可以通过Metabase的API导入和导出序列化的Metabase数据,这使得Metabase云版部署能够进行序列化。
有两个端点:
POST /api/ee/serialization/export
POST /api/ee/serialization/import
我们对
/export
端点使用POST
而非GET
。导出操作不会修改您的Metabase,但它耗时且密集,因此我们使用POST
以防止意外导出。
目前,这些端点是同步的。如果序列化过程耗时过长,请求可能会超时。在这种情况下,我们建议使用CLI命令。
有关序列化的通用信息,请参阅导出工作原理、导入工作原理和序列化最佳实践。
API导出参数
您可以附加可选参数,告诉Metabase在导出中包含或排除什么。您也可以组合参数(当然,排除all_collections
和选择性集合)。
因此,假设您正在localhost
上测试,并且您想从导出中排除所有集合,您将按如下方式格式化URL:
http://localhost:3000/api/ee/serialization/export?all_collections=false
您可以包含多个参数,用&
分隔。例如,要从导出中同时排除设置和数据模型:
http://localhost:3000/api/ee/serialization/export?data_model=false&settings=false
collection
类型:整数数组。
默认值:Metabase将导出所有集合,除非all_collections
设置为false
。
要选择要导出的集合,请包含集合ID。例如,要包含集合1
和2
:
collection=1&collection=2
all_collections
类型:布尔值
默认值:true
(除非您使用collection
指定集合子集)。
排除所有集合:
all_collections=false
settings
类型:布尔值。
默认值:true
。
排除包含网站范围设置的settings.yaml
文件:
settings=false
data_model
类型:布尔值。
默认值:true
。
排除表元数据:
data_model=false
field_values
类型:布尔值。
默认值:false
。
包含字段值的示例值,Metabase使用这些值来显示下拉菜单:
field_values=true
database_secrets
类型:布尔值。
默认值:false
。
包含数据库连接详情,如数据库用户名和密码:
database_secrets=true
dirname
类型:字符串。
默认值:<instance-name>-<YYYY-MM-dd_HH_mm>
指定不同的目录:
dirname=name_of_your_directory
通过API调用进行序列化时,您必须压缩文件
为了控制网络传输中的文件大小,export
和import
端点都期望GZIP压缩的Tar文件(.tgz
)。
压缩目录
压缩目录(例如,名为metabase_data
的目录)。
tar -czf metabase_data.tgz metabase_data
解压目录
解压目录:
tar -xvf metabase_data.tgz
序列化API示例
步骤1:设置API密钥
- 创建一个API密钥。
- 将密钥分配给Admin组。
步骤2:导出
- 发送
curl
请求以导出数据:
curl \
-H 'x-api-key: YOUR_API_KEY' \
-X POST 'http://your-metabase-url/api/ee/serialization/export' \
-o metabase_data.tgz
将YOUR_API_KEY
替换为您的API密钥,将your-metabase-url
替换为您的Metabase实例URL。
我们对
/export
端点使用POST
,而非GET
。
此命令会将文件下载为名为metabase_data.tgz
的GZIP压缩的Tar文件。
- 解压压缩文件
tar -xvf metabase_data.tgz
解压后的目录名称将类似于metabase-yyyy-MM-dd_HH-mm
,其中包含导出日期和时间。
步骤3:导入
- 压缩包含序列化Metabase应用程序数据的目录
假设您的Metabase应用程序数据YAML文件位于名为metabase_data
的目录中。在将这些文件导入到您的目标Metabase之前,您需要先压缩这些文件。
tar -czf metabase_data.tgz metabase_data
- POST到
/api/ee/serialization/import
。
从您存储GZIP压缩文件的目录运行:
curl -X POST \
-H 'x-api-key: YOUR_API_KEY' \
-F file=@metabase_data.tgz \
'http://your-metabase-url/api/ee/serialization/import' \
-o -
将YOUR_API_KEY
替换为您的API密钥,将your-metabase-url
替换为您的Metabase实例URL。-o -
选项将在终端中输出日志。
如果您将Metabase数据导入到与导出数据相同的Metabase中,您将覆盖现有的问题、仪表盘等。请参阅导入工作原理。
序列化的其他用途
序列化旨在用于版本控制、从预生产到生产的工作流,以及将资产复制到其他Metabase实例。虽然可以将序列化用于其他用例(例如在单个实例内部复制资产),但我们不正式支持这些用例。
我们提供了一些处理这些不受支持用例的指导,但您应自行承担风险使用。我们强烈建议您首先在非生产实例上测试任何涉及序列化的过程,如有任何疑问,请联系help@metabase.com。
在同一Metabase中复制内容时使用序列化
使用序列化复制内容并非易事,因为您需要处理所有要复制的项目的实体ID——以及与这些项目相关的所有项目的ID——以避免覆盖现有数据。
在开始这一危险旅程之前,请回顾导出工作原理和导入工作原理,如有任何疑问,请联系help@metabase.com。
您需要记住:
- 导入具有已存在实体ID的项目将覆盖现有项目。要使用现有YAML文件创建新项目,您需要a) 创建一个新的实体ID,或b) 清除实体ID。
- 两个项目不能拥有相同的实体ID。
- YAML文件中的
entity_id
和serdes/meta → id
字段应匹配。 - 如果某个项目的YAML文件中的
entity_id
和serdes/meta → id
字段为空,Metabase将创建一个带有新实体ID的新项目。 -
一个项目引用的所有项目和数据源应要么已存在于目标Metabase中,要么包含在导入中。
例如,一个集合可能包含一个仪表盘,该仪表盘包含一个基于引用数据源的模型构建的问题。所有这些依赖项都必须包含在导入中或已存在于目标实例中。
这意味着您可能需要进行多阶段导出/导入:首先在Metabase中创建您需要的一些项目(如集合),导出它们以获取其实体ID,然后导出您想要复制的内容并在引用它们的项目中使用这些ID。
例如,要在不更改问题数据源的情况下,复制一个只包含直接基于原始数据构建(而非基于模型或其他已保存问题)的问题的集合,您可以使用如下流程:
- 在Metabase中,创建一个“模板”集合并添加您想要复制的项目。
- 在Metabase中,创建一个新集合,作为复制项目的目标。
- 导出模板集合和目标集合(您可以使用导出参数仅导出少量集合)。导出中模板问题的YAML文件将拥有自己的实体ID,并引用模板集合的实体ID。
- 从目标集合的导出中获取其实体ID。
-
在模板集合导出中问题的YAML文件中:
- 清除问题中字段
entity_id
和serdes/meta → id
的值。这将确保模板问题不会被覆盖,而是Metabase将创建新问题。 - 将
collection_id
对模板集合的引用替换为新集合的ID:
- 清除问题中字段
- 导入编辑后的文件。
此过程假设您复制的问题都将使用相同的数据源。您可以将其与切换数据源结合使用,以便为每个复制的集合使用不同的数据源。
如果您想一次创建多个集合副本,那么可以不必为每个副本重复此过程,而是创建您自己的目标实体ID(它们可以是任何使用NanoID格式的字符串),复制所有模板YAML文件,并将模板实体ID及其任何引用替换为您创建的实体ID。
如果您的集合包含仪表盘、模型以及其他可能添加依赖项的项目,此过程可能会变得更加复杂——您需要处理每个依赖项。我们强烈建议您首先在非生产Metabase上测试您的序列化,如果您需要任何帮助,请联系help@metabase.com。
在一个实例内使用序列化来交换问题的数据源
如果您想更改Metabase中某些问题的数据源——例如,仅更改单个集合中的问题——您可以手动序列化这些问题,然后编辑导出的YAML文件。
如果您想将基于数据库A构建的所有问题都切换为使用数据库B,并且数据库B与数据库A具有完全相同的模式,则无需使用序列化:您只需在管理 > 数据库中交换连接字符串即可。
您的数据库必须具有相同的引擎,并且理想情况下应具有相同的模式。
您需要记住:
- 数据库、表和字段在Metabase 中按名称引用
- 数据库连接详细信息默认不会导出。要导出数据库连接详细信息,您需要在导出参数中指定。
- 项目引用的数据库、表和字段应已存在于目标 Metabase 中,或包含在导入中。
例如,如果您想将Movie reviews
集合中的所有问题切换为使用Romance
数据库而不是Horror
数据库,并且两个数据库具有相同的架构,您可以遵循以下过程
- 在 Metabase 中,在管理员 > 数据库中添加新的数据库连接并将其命名为
Romance
。 -
导出集合
Movie reviews
。您可以告诉 Metabase 导出单个集合,或者您可以导出所有集合,然后只需处理
Movie reviews
集合文件夹中的文件 - 在此集合的项目 YAML 文件中,将所有对
Horror
数据库的引用替换为对Romance
数据库的引用 - 导入编辑后的文件。
导入将覆盖原始问题。如果您想创建使用不同数据源的新问题,可以将此过程与使用序列化来复制资产结合起来。
此过程假定您的新数据源具有完全相同的架构。如果架构不同,您还需要替换对所有表和字段的所有引用。此过程可能复杂且容易出错,因此我们强烈建议您首先在非生产实例上测试您的序列化,如果需要任何帮助,请联系help@metabase.com。
从旧的序列化命令迁移
如果您正在从 Metabase 46.X 或更早版本升级,以下是您需要了解的内容
export
命令取代了dump
命令。import
命令取代了load
命令。
其他一些需要指出的更改
- 导出的 YAML 文件结构略有不同
- Metabase 将在每个文件前加上一个 24 字符的实体 ID(例如
IA96oUzmUbYfNFl0GzhRj_accounts_model.yaml
)。您可以在导出前运行 Metabase 命令删除实体 ID。 - 文件树略有不同。
- Metabase 将在每个文件前加上一个 24 字符的实体 ID(例如
- 要序列化个人集合,您只需在逗号分隔的 ID 列表中包含个人集合 ID,紧跟在
-c
选项(--collection
的缩写)之后。
如果您已编写脚本来自动化序列化,则需要
- 使用升级后的 Metabase(它使用新的
export
和import
命令)重新序列化您的 Metabase。请注意,只有在使用相同 Metabase 版本导出和导入 Metabase 时,序列化才能正常工作。 - 使用新命令更新这些脚本。请参阅新的导出选项。
- 如果您的脚本对导出的 YAML 文件进行任何后处理,您可能需要更新脚本以适应略有不同的目录和 YAML 文件结构。
延伸阅读
- 序列化教程.
- 多环境
- 设置基于 Git 的工作流.
- 需要帮助?请联系support@metabase.com。
阅读其他Metabase 版本的文档。