組態檔
從組態檔載入僅適用於 Pro 和 Enterprise 方案(僅限於自架方案)。
在自架 Pro 和 Enterprise 方案上,Metabase 支援從名為 config.yml
的組態檔啟動時進行初始化。組態檔應位於
- 目前目錄(執行 Metabase JAR 所在的目錄)。
- 由
MB_CONFIG_FILE_PATH
環境變數 指定的路徑。
組態檔中定義的設定與您在 Metabase 的管理設定中設定這些設定的效果相同。在此組態檔中定義的設定將更新任何現有設定。例如,如果資料庫已存在(也就是說,您已透過初始設定或管理設定 > 資料庫新增了資料庫,Metabase 將根據組態檔中的資料更新資料庫項目)。這表示:如果您在組態檔中定義了設定,然後稍後在您的 Metabase 應用程式中變更了該設定,請記住,每當 Metabase 重新啟動時,組態檔都會覆寫該變更。
組態檔設定不會被視為硬編碼的真值來源(就像 環境變數 一樣)。環境變數設定的設定無法變更,即使在應用程式本身的「管理設定」中也無法變更。
組態範本範例
請參閱 組態範本。
組態設定
組態檔分為幾個區段:version
和 config。
在 config
下,您可以指定
像這樣
version: 1
config:
settings:
- ...
users:
- ...
databases:
- ...
組態檔也必須包含 version
金鑰,這只是一個方便的欄位,可協助您追蹤組態檔版本。
使用者
在 Metabase 執行個體中建立的第一個使用者是管理員。組態檔中列出的第一個使用者可以被指定為管理員,但並非必須如此。如果有人已經首次啟動並登入 Metabase,Metabase 會將該第一個使用者設為管理員。此外,您可以使用 is_superuser: true
金鑰將使用者帳戶指定為管理員。
在以下範例中,假設 Metabase 尚未設定完成(這會建立第一個使用者),則使用者 first@example.com
和 admin@example.com
都將是管理員:first@example.com
因為它是清單上的第一個使用者帳戶,而 admin@example.com
則是因為該使用者已將 is_superuser
旗標設定為 true。
version: 1
config:
users:
- first_name: First
last_name: Person
password: metabot1
email: first@example.com
- first_name: Normal
last_name: Person
password: metabot1
email: normal@example.com
- first_name: Admin
last_name: Person
password: metabot1
is_superuser: true
email: admin@example.com
如果 Metabase 已經設定完成,則 first @example.com
將載入為一般使用者。
資料庫
在新的 Metabase 上,以下範例設定了一個管理員使用者帳戶和一個資料庫連線。
version: 1
config:
users:
- first_name: Cam
last_name: Era
password: 2cans3cans4cans
email: cam@example.com
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: cam@example.com
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 版本的文件。