配置文件

从配置文件加载仅在 ProEnterprise 计划(仅限自托管计划)中可用。

在自托管的 ProEnterprise 计划中,Metabase 支持从名为 config.yml 的配置文件启动时进行初始化。配置文件应位于

  • 当前目录(运行 Metabase JAR 所在的目录)。
  • MB_CONFIG_FILE_PATH 环境变量 指定的路径。

配置文件中定义的设置与您在 Metabase 的管理设置中设置这些设置的效果相同。在此配置文件中定义的设置将更新任何现有设置。例如,如果数据库已存在(即,您已通过初始设置或管理设置>数据库添加了数据库,Metabase 将根据配置文件中的数据更新数据库条目)。这意味着:如果您在配置文件中定义了一个设置,然后在 Metabase 应用程序中更改了该设置,请记住,配置文件将在 Metabase 重新启动时覆盖该更改。

配置文件设置不被视为硬编码的真实来源(如环境变量)。环境变量设置的设置无法更改,即使在应用程序本身的管理设置中也是如此。

配置文件模板示例

请参阅配置文件模板

配置设置

配置文件分为几个部分:versionconfig。config 下,您可以指定

像这样

version: 1
config:
  settings:
    - ...
  users:
    - ...
  databases:
    - ...

配置文件还必须包含一个 version 键,这只是一个方便字段,可帮助您跟踪配置文件版本。

用户

在 Metabase 实例中创建的第一个用户是管理员。配置文件中列出的第一个用户可以被指定为管理员,但并非必须如此。如果有人已经首次启动并登录到该 Metabase,Metabase 会将第一个用户设为管理员。此外,您可以使用 is_superuser: true 键将用户帐户指定为管理员。

在以下示例中,假设 Metabase 尚未设置(这将创建第一个用户),用户 [email protected][email protected] 都将是管理员:[email protected] 因为它是列表中的第一个用户帐户,而 [email protected] 因为该用户已将 is_superuser 标志设置为 true。

version: 1
config:
  users:
    - first_name: First
      last_name: Person
      password: metabot1
      email: [email protected]
    - first_name: Normal
      last_name: Person
      password: metabot1
      email: [email protected]
    - first_name: Admin
      last_name: Person
      password: metabot1
      is_superuser: true
      email: [email protected]

如果 Metabase 已经设置,则 first @example.com 将作为普通用户加载。

数据库

在新的 Metabase 上,以下示例设置了一个管理员用户帐户和一个数据库连接。


version: 1
config:
  users:
    - first_name: Cam
      last_name: Era
      password: 2cans3cans4cans
      email: [email protected]
  databases:
    - name: test-data (Postgres)
      engine: postgres
      details:
        host: localhost
        port: 5432
        user: dbuser
        password: "{{{ env POSTGRES_TEST_DATA_PASSWORD }}}"
        dbname: test-data

要确定可以为数据库指定的键,请查看 Metabase 本身中可用于要添加的数据库的字段。

在数据库上设置上传

您还可以在配置文件中使用以下设置配置 上传

  • uploads_enabled:布尔值
  • uploads_schema_name:字符串
  • uploads_table_prefix:字符串

这是一个示例


version: 1
config:
  users:
    - first_name: Cam
      last_name: Era
      password: 2cans3cans4cans
      email: [email protected]
  databases:
    - name: test-data (Postgres)
      engine: postgres
      details:
        host: localhost
        port: 5432
        user: dbuser
        password: "{{{ env POSTGRES_TEST_DATA_PASSWORD }}}"
        dbname: test-data
      uploads_enabled: true
      uploads_schema_name: uploads
      uploads_table_prefix: uploads_

请参阅上传

config.yml 中引用环境变量

如上面的数据库示例所示,可以使用 {{{ template-tags }}} 指定环境变量,例如 {{{ env POSTGRES_TEST_DATA_PASSWORD }}}[[options {{{template-tags}}}]]

Metabase 不支持递归扩展,因此如果您的某个环境变量引用另一个环境变量,您将会遇到麻烦。

禁用初始数据库同步

从序列化导出加载数据模型时,您需要禁用调度程序,以使 Metabase 不会尝试同步。

要禁用初始数据库同步,您可以将 config-from-file-sync-database 添加到 settings 列表,并将值设置为 false。设置 config-from-file-sync-database 必须位于数据库列表之前,如下所示

version: 1
config:
  settings:
    config-from-file-sync-databases: false
  databases:
    - name: my-database
      engine: postgres
      details: ...

设置

在此配置文件中,您可以指定任何管理设置。

通常,您可以在此配置文件的 settings 部分中设置的设置映射到环境变量,因此请查看它们以了解您可以在配置文件中使用哪些设置。您在配置文件中包含的实际键与环境变量使用的格式略有不同。对于环境变量,格式为尖叫蛇形命名,前缀为 MB

MB_NAME_OF_VARIABLE

而在配置文件中,您会将其转换为

name-of-variable

因此,例如,如果您想在 config.yml 文件中指定 MB_EMAIL_FROM_NAME

version: 1
config:
  settings:
    config-from-file-sync-databases: false
    email-from-name: Stampy von Mails-a-lot
  databases:
    - name: my-database
      engine: h2
      details: ...

但是您可以使用配置文件设置任何管理设置(有关设置列表,请查看配置文件模板)。您还可以浏览环境变量列表,以查看可以配置的内容(但请注意,并非所有环境变量都可以通过配置文件设置。)

从配置文件加载新的 Metabase

由于从配置文件加载是 Pro/Enterprise 功能:对于新安装,您需要使用 MB_PREMIUM_EMBEDDING_TOKEN 环境变量向 Metabase 提供令牌。

MB_PREMIUM_EMBEDDING_TOKEN="[your token]" java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

延伸阅读

阅读其他Metabase 版本的文档。