配置文件

仅限于在专业版企业版计划(仅限于自托管计划)中从配置文件加载。

在自托管的Pro和企业版计划中,Metabase支持从名为config.yml的配置文件进行初始化。配置文件应位于

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

配置文件中定义的设置与在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: ...

为了给您一些设置的概念,这里是一个您可以通过配置文件设置的设置的不完整列表

application-colors
config-from-file-sync-databases
check-for-updates
experimental-enable-actions
persisted-model-refresh-cron-schedule
email-smtp-host
email-smtp-username
start-of-week
email-smtp-password
email-smtp-port
email-from-name
email-from-address
email-reply-to
premium-embedding-token
follow-up-email-sent
persisted-models-enabled
site-locale
application-name
settings-last-updated
instance-creation
enable-public-sharing
enable-embedding
embedding-secret-key
jwt-group-sync
anon-tracking-enabled
snowplow-available
jwt-enabled
google-auth-enabled
redirect-all-requests-to-https
site-url
site-name

但您可以通过配置文件设置任何管理设置。查看环境变量列表以查看您可以配置的内容(尽管请注意,并非所有环境变量都可以通过配置文件设置。)

从配置文件加载新的Metabase

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

MB_PREMIUM_EMBEDDING_TOKEN="[your token]" java -jar metabase.jar

阅读关于其他Metabase版本的文档。

想改进这些文档? 提出更改。