序列化
序列化仅在 Pro 和 Enterprise 计划(包括自托管和 Metabase 云)中可用。
当您真正开始使用 Metabase 时,通常会有多个 Metabase 实例启动。您可能有几个测试或开发实例和一些生产实例,或者您可能为每个办公室或区域设置了单独的 Metabase。
为了在这种情况下帮助您,Metabase 具有序列化功能,可让您创建 Metabase 内容的导出,然后可以将其导入到一个或多个 Metabase 中。
导出将把源 Metabase 的内容序列化为 YAML 文件。
导入将读取这些导出的 YAML 文件,并根据这些 YAML 文件中序列化的内容在目标 Metabase 中创建或更新项目。
有两种方法可以运行这些 export
和 import
命令
我们对如何改进序列化以适应您的工作流程感兴趣。 为现有问题投票,让我们知道这对您很重要。如果相关问题尚不存在,请创建一个并告诉我们您需要什么。
序列化用例
- 暂存环境。通过从 Metabase 的暂存实例导出重要仪表盘,然后将其导入到您的生产实例中,为重要仪表盘启用暂存到生产的工作流程。
- 版本控制。将导出的文件检入版本控制并审核对其的更改,因为导出中包含的 YAML 文件非常易读。
- 将资产复制到其他 Metabase 实例。从源 Metabase 导出“模板”数据,并将其导入到一个或多个目标实例。
查看我们的指南:
序列化不适用于在同一 Metabase 实例中复制资产或交换数据源等用例。如果您在同一实例中使用序列化来复制资产,请查看导出工作原理、导入工作原理以及序列化的其他用途中针对您的用例的说明
导出工作原理
导出内容
Metabase 只会导出以下实体
- 集合(但个人集合不会导出,除非通过导出选项明确指定)
- 仪表盘
- 已保存的问题
- 操作
- 模型
- 指标
- SQL 代码片段
- 数据模型和表元数据
- 分段
- 问题和仪表盘的公开共享设置
- 通用 Metabase 设置
- 事件和时间线
- 数据库连接字符串(仅当通过导出选项指定时)。
所有其他实体(包括用户、组、权限、警报、订阅)都不会导出。
Metabase 将其工件导出到 YAML 文件目录。导出包括:
-
包含各种 Metabase 实体的 YAML 文件的目录。示例导出可能包括以下目录,具体取决于您导出的内容和 Metabase 的内容:
- actions
- collections
- cards
- dashboards
- timelines
- databases
通过 API 进行序列化时,导出目录将被压缩为 .tar.gz 文件。
-
一个
settings.yaml
文件,其中包含一些Metabase 范围的设置
默认情况下不包含数据库连接详细信息,但您可以配置导出以包含它们。
导出的通用 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 设置
- 不导出表元数据
- 包含示例字段值(默认排除)
- 包含数据库连接详细信息(默认排除)
请参阅 CLI 命令中的导出参数 或 API 调用中的导出参数。
序列化问题的示例
问题可以在集合目录的 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: [email protected]
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 使用 NanoID 格式。
您可以在导出的 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
。
数据库、模式、表和字段通过名称标识
默认情况下,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
它指的是示例数据库的 PUBLIC 模式中 PRODUCTS 表中的 CATEGORY
字段。 databases
目录中序列化的 Sample Database
还将包含此字段和表的 YAML 文件。
导入工作原理
在导入期间,Metabase 将读取提供的 YAML 文件并根据 YAML 规范创建项目。序列化问题的示例说明了 Metabase 如何记录重建项目所需的信息。
Metabase 在导入期间不会从目标实例中删除项目,但会覆盖已存在的项目。
Metabase 依赖于实体 ID来确定要创建或覆盖哪些项目,以及项目之间的关系。当导入到已经包含某些内容的实例中时,请记住:
-
如果您导入的项目的
entity_id
在目标 Metabase 中不存在,Metabase 将创建一个新项目。 -
如果您导入的项目的
entity_id
在目标 Metabase 中已存在,则现有项目将被覆盖。特别是,这意味着如果您导出一个问题,然后在导出的 YAML 文件中进行更改(例如通过直接编辑
name
字段来重命名问题),然后将编辑后的文件导回,Metabase 将尝试应用您对 YAML 所做的更改。 -
如果您导入的项目的
entity_id
为空,Metabase 将创建一个新项目。在这种情况下,任何serdes/meta → id
都将被忽略。 -
YAML 中引用的所有项目和数据源必须已存在于目标 Metabase 中,或者包含在导入中。
例如,如果导出的 YAML 具有字段
collection_id: onou5H28Wvy3kWnjxxdKQ
,则集合onou5H28Wvy3kWnjxxdKQ
必须已存在于目标实例中,或者必须有一个 YAML 文件,其中包含具有此 ID 的集合的导出。
序列化最佳实践
源实例和目标实例使用相同的 Metabase 版本
目前,只有当源 Metabase 和目标 Metabase 具有相同的主版本时,序列化才有效。如果您使用的是 CLI 序列化命令,则用于运行序列化命令的 .jar 文件的版本也应与源 Metabase 和目标 Metabase 版本匹配。
如果您使用 H2 作为应用程序数据库,则需要在导入或导出之前停止 Metabase。
如果您使用 Postgres 或 MySQL 作为应用程序数据库,则可以在 Metabase 仍在运行时导入和导出。
避免将序列化用于备份
请注意:序列化并非旨在备份您的 Metabase。
请参阅备份 Metabase。
如果您改为希望执行从 Metabase 附带的默认 H2 数据库到 MySQL/Postgres 的一次性迁移,请改用迁移指南。
您需要手动添加许可证令牌
Metabase 从导出中排除您的许可证令牌,因此如果您运行 Metabase Enterprise Edition 的多个环境,则需要手动将您的许可证令牌添加到目标 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
选项
要查看导出选项列表,请使用 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 Cloud 部署可以进行序列化。
有两个端点
POST /api/ee/serialization/export
POST /api/ee/serialization/import
对于
/export
端点,我们使用POST
,而不是GET
。导出操作不会修改您的 Metabase,但它耗时且密集,因此我们使用POST
以防止意外导出。
目前,这些端点是同步的。如果序列化过程耗时过长,请求可能会超时。在这种情况下,我们建议使用 CLI 命令。
有关序列化的常规信息,请参阅“导出工作原理”、“导入工作原理”和“序列化最佳实践”。
API 导出参数
您可以附加可选参数来告知 Metabase 在导出中包含或排除哪些内容。您还可以组合参数(当然,all_collections
和选择性集合除外)。
因此,假设您在 localhost
上进行测试,并且您想从导出中排除所有集合,您应该像这样格式化 URL
https://127.0.0.1:3000/api/ee/serialization/export?all_collections=false
您可以包含多个参数,用 &
分隔。例如,要从导出中排除设置和数据模型
https://127.0.0.1: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 密钥。
- 将密钥分配给管理员组
步骤 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 应用程序数据的目录
假设您的 YAML 文件与 Metabase 应用程序数据位于名为 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 中,您将覆盖您现有的问题、仪表板等。请参阅 导入工作原理。
序列化的其他用途
序列化旨在用于版本控制、从暂存环境到生产环境的工作流程以及将资产复制到其他 Metabase 实例。虽然可以使用序列化进行其他用例(例如在单个实例中复制资产),但我们不正式支持这些用例。
我们提供了一些关于如何处理这些不受支持的用例的指导,但您应该自行承担风险使用它们。我们强烈建议您首先在非生产实例上测试任何涉及序列化的过程,如果您有任何问题,请联系 [email protected]。
使用序列化在同一 Metabase 中复制内容
使用序列化复制内容并非易事,因为您需要处理您要复制的所有项目的 实体 ID — 以及与这些项目相关的所有项目的 ID — 以避免覆盖现有数据。
在开始这段危险的旅程之前,请查看 导出工作原理 和 导入工作原理,如果您有任何问题,请联系 [email protected]。
您需要记住
- 导入具有已存在的实体 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 上测试您的序列化,如果您需要任何帮助,请联系 [email protected]。
使用序列化在单个实例中交换问题的数据源
如果您想更改 Metabase 中某些问题的数据源——例如,仅更改单个集合中的问题的数据源——您可以手动序列化问题,然后编辑导出的 YAML 文件。
如果您想将每个基于数据库 A 构建的问题切换为使用数据库 B,并且数据库 B 与数据库 A 具有完全相同的架构,则您无需使用序列化:您只需在 管理 > 数据库 中交换连接字符串即可
您的数据库必须具有相同的引擎,理想情况下,它们应该具有相同的架构。
您需要记住
- 数据库、表和字段在 Metabase 中 按名称引用
- 默认情况下不导出数据库连接详细信息。要导出数据库连接详细信息,您需要在 导出参数中指定。
- 项目引用的数据库、表和字段应已存在于目标 Metabase 中,或包含在导入中。
例如,如果您想将 Movie reviews
集合中的所有问题切换为使用 Romance
数据库而不是 Horror
数据库,并且两个数据库具有相同的架构,您可以按照如下过程操作
- 在 Metabase 中,在 管理 > 数据库 中添加新的数据库连接,并将其命名为
Romance
。 -
导出集合
Movie reviews
。您可以告诉 Metabase 导出单个集合,也可以导出所有集合,然后仅处理
Movie reviews
集合的文件夹中的文件 - 在此集合中项目的 YAML 文件中,将所有对
Horror
数据库的引用替换为对Romance
的引用 - 导入编辑后的文件。
导入将覆盖原始问题。如果您希望创建使用不同数据源的新问题,您可以将此过程与 使用序列化复制资产 相结合。
此过程假定您的新数据源具有完全相同的架构。如果架构不同,那么您还需要替换对所有表和字段的所有引用。此过程可能很复杂且容易出错,因此我们强烈建议您首先在非生产实例上测试您的序列化,如果您需要任何帮助,请联系 [email protected]。
从旧的序列化命令迁移
如果您是从 Metabase 版本 46.X 或更旧版本升级,以下是您需要了解的内容
export
命令取代了dump
命令。import
命令取代了load
命令。
需要注意的其他一些更改
- 导出的 YAML 文件具有略微不同的结构
- Metabase 将为每个文件添加 24 个字符的实体 ID 前缀(例如
IA96oUzmUbYfNFl0GzhRj_accounts_model.yaml
)。您可以在导出之前运行 Metabase 命令来 删除实体 ID。 - 文件树略有不同。
- Metabase 将为每个文件添加 24 个字符的实体 ID 前缀(例如
- 要序列化个人集合,您只需在逗号分隔的 ID 列表中包含个人集合 ID,这些 ID 紧跟
-c
选项(--collection
的缩写)。
如果您编写了脚本来自动化序列化,您将需要
- 使用升级后的 Metabase 重新序列化您的 Metabase(它使用新的
export
和import
命令)。请注意,只有当您使用相同的 Metabase 版本导出和导入 Metabase 时,序列化才有效。 - 使用新命令更新这些脚本。请参阅新的 导出选项。
- 如果您的脚本对导出的 YAML 文件进行任何后处理,您可能需要更新您的脚本以适应略微不同的目录和 YAML 文件结构。
进一步阅读
- 序列化教程.
- 多个环境
- 设置基于 git 的工作流程.
- 需要帮助?请联系 [email protected]。
阅读其他 Metabase 版本 的文档。