配置文件
在自托管的Pro和企业版计划中,Metabase支持从名为config.yml
的配置文件进行初始化。配置文件应位于
- 当前目录(运行Metabase JAR的目录)。
- 由
MB_CONFIG_FILE_PATH
环境变量指定的路径。
配置文件中定义的设置与在Metabase的“管理员设置”中设置这些设置的效果相同。此配置文件中定义的设置将更新任何现有设置。例如,如果数据库已存在(即,您已经通过初始设置或“管理员设置”>“数据库”添加了它),Metabase将根据配置文件中的数据更新数据库条目。
配置文件设置不视为硬编码的真实来源(如环境变量)。通过环境变量设置的设置不能更改,即使在应用程序本身的“管理员设置”中也不能更改。
配置设置
配置文件分为几个部分:version
和config
。在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版本的文档。