跳至主要内容
注意

此教學為社群貢獻內容,未獲得 Open WebUI 團隊的支援。它僅作為定制 Open WebUI 以適應您特定需求的示範。想貢獻內容嗎?請參閱貢獻教學。

[!WARNING]
此文件是根據目前版本 (0.5.11) 創建,並會持續更新。

Open-WebUI 內部 SQLite 資料庫

對於 Open-WebUI 來說,SQLite 資料庫是用於用戶管理、聊天紀錄、檔案存儲以及其他核心功能的支柱。了解此結構對於希望有效貢獻或維護此專案的任何人來說至關重要。

內部 SQLite 位址

您可以在 root -> data -> webui.db 找到 SQLite 資料庫

📁 Root (/)
├── 📁 data
│ ├── 📁 cache
│ ├── 📁 uploads
│ ├── 📁 vector_db
│ └── 📄 webui.db
├── 📄 dev.sh
├── 📁 open_webui
├── 📄 requirements.txt
├── 📄 start.sh
└── 📄 start_windows.bat

本地複製資料庫

如果您想將容器中正在運行的 Open-WebUI SQLite 資料庫複製到您的本地機器,可以使用以下指令:

docker cp open-webui:/app/backend/data/webui.db ./webui.db

或者,您可以使用以下指令進入容器,直接訪問資料庫:

docker exec -it open-webui /bin/sh

表概覽

以下是 Open-WebUI SQLite 資料庫中所有表的完整列表。表按照字母順序排列,並已編號便於查閱。

編號表名稱描述
01auth存儲用戶身份驗證憑據和登錄信息
02channel管理聊天頻道及其配置
03channel_member跟蹤用戶在頻道中的成員關係及權限
04chat存儲聊天會話及其元數據
05chatidtag聯繫聊天及其相關標籤的映射
06config維護系統範圍內的配置設定
07document存儲文檔及其元數據,以便於知識管理
08feedback捕捉用戶反饋和評分
09file管理上傳的檔案及其元數據
10folder將檔案和內容組織成層級結構
11function存儲自定功能及其配置
12group管理用戶群組及其權限
13knowledge存儲知識庫條目及相關信息
14memory維護聊天紀錄和上下文記憶
15message存儲各個聊天訊息及其內容
16message_reaction記錄用戶對訊息的反應(表情符號/回應)
17migrate_history跟蹤資料庫架構版本及遷移記錄
18model管理 AI 模型的配置及設定
19prompt存儲 AI 提示的模板及配置
20tag管理內容分類的標籤/標記
21tool存儲系統工具及整合配置
22user維護用戶檔案及帳戶信息

注意:Open-WebUI SQLite 資料庫中有兩個表不屬於 Open-WebUI 核心功能,這裡已排除:

  • Alembic 版本表
  • 遷移記錄表

現在我們擁有所有表,接下來了解每個表的結構。

Auth 表

列名稱資料類型約束條件描述
idStringPRIMARY KEY唯一標識符
emailString-用戶的電子郵件
passwordText-已加密的密碼
activeBoolean-帳戶狀態

關於 Auth 表需要了解的事情:

  • 使用 UUID 作為主鍵
  • users 表一對一關係(共享 id)

Channel 表

列名稱資料類型約束條件描述
idTextPRIMARY KEY唯一標識符 (UUID)
user_idText-頻道的擁有者/建立者
typeTextnullable頻道類型
nameText-頻道名稱
descriptionTextnullable頻道描述
dataJSONnullable靈活的數據存儲
metaJSONnullable頻道元數據
access_controlJSONnullable權限設置
created_atBigInteger-建立時間戳 (納秒級)
updated_atBigInteger-最後更新時間戳 (納秒級)

關於 auth 表的注意事項:

  • 使用 UUID 作為主鍵
  • 頻道名稱不區分大小寫(存儲為小寫)

頻道成員表

列名數據類型約束描述
idTEXTNOT NULL頻道成員資格的唯一標識符
channel_idTEXTNOT NULL參考的頻道
user_idTEXTNOT NULL參考的用戶
created_atBIGINT-创建成員資格的時間戳

聊天表

列名數據類型約束描述
idStringPRIMARY KEY唯一標識符 (UUID)
user_idString-聊天的擁有者
titleText-聊天標題
chatJSON-聊天內容和歷史
created_atBigInteger-建立時間戳
updated_atBigInteger-最後更新時間戳
share_idTextUNIQUE, nullable分享標識符
archivedBooleandefault=False是否已存檔
pinnedBooleandefault=False, nullable是否已置頂
metaJSONserver_default=""包括標籤的元數據
folder_idTextnullable父文件夾 ID

聊天標籤表

列名數據類型約束描述
idVARCHAR(255)NOT NULL唯一標識符
tag_nameVARCHAR(255)NOT NULL標籤名稱
chat_idVARCHAR(255)NOT NULL聊天的引用
user_idVARCHAR(255)NOT NULL用戶的引用
timestampINTEGERNOT NULL建立時間戳

配置

列名數據類型約束默認值描述
idINTEGERNOT NULL-主鍵標識符
dataJSONNOT NULL-配置數據
versionINTEGERNOT NULL-配置版本號
created_atDATETIMENOT NULLCURRENT_TIMESTAMP建立時間戳
updated_atDATETIME-CURRENT_TIMESTAMP最後更新時間戳

反饋表

列名數據類型約束描述
idTextPRIMARY KEY唯一標識符 (UUID)
user_idText-提供反饋的用戶
versionBigIntegerdefault=0反饋版本號
typeText-反饋類型
dataJSONnullable包括評分的反饋數據
metaJSONnullable元數據(如競技場,聊天 ID 等)
snapshotJSONnullable關聯的聊天快照
created_atBigInteger-建立時間戳
updated_atBigInteger-最後更新時間戳

檔案表格

欄位名稱資料類型限制條件描述
idStringPRIMARY KEY唯一識別碼
user_idString-檔案的擁有者
hashTextnullable檔案哈希值/校驗碼
filenameText-檔案名稱
pathTextnullable檔案系統路徑
dataJSONnullable檔案相關的資料
metaJSONnullable檔案元數據
access_controlJSONnullable權限設置
created_atBigInteger-建立時間戳
updated_atBigInteger-最後更新時間戳

meta 欄位的預期結構:

{
"name": string, # 可選的顯示名稱
"content_type": string, # MIME 類型
"size": integer, # 檔案大小(位元組)
# 透過 ConfigDict(extra="allow") 支援額外的元數據
}

資料夾表格

欄位名稱資料類型限制條件描述
idTextPRIMARY KEY唯一識別碼 (UUID)
parent_idTextnullable用於層級結構的父資料夾ID
user_idText-資料夾的擁有者
nameText-資料夾名稱
itemsJSONnullable資料夾內容
metaJSONnullable資料夾元數據
is_expandedBooleandefault=FalseUI 展開狀態
created_atBigInteger-建立時間戳
updated_atBigInteger-最後更新時間戳

關於資料夾表格需注意的事項:

  • 資料夾可以嵌套(parent_id 引用)
  • 根資料夾的 parent_id 為空
  • 相同父資料夾內的資料夾名稱必須唯一

函數表格

欄位名稱資料類型限制條件描述
idStringPRIMARY KEY唯一識別碼
user_idString-函數的擁有者
nameText-函數名稱
typeText-函數類型
contentText-函數內容/代碼
metaJSON-函數元數據
valvesJSON-函數控制設置
is_activeBoolean-函數啟動狀態
is_globalBoolean-全域可用性標誌
created_atBigInteger-建立時間戳
updated_atBigInteger-最後更新時間戳

關於資料夾表格需注意的事項:

  • type 值僅可為: ["filter", "action"]

群組表格

欄位名稱資料類型限制條件描述
idTextPRIMARY KEY, UNIQUE唯一識別碼 (UUID)
user_idText-群組的擁有者/建立者
nameText-群組名稱
descriptionText-群組描述
dataJSONnullable額外的群組資料
metaJSONnullable群組元數據
permissionsJSONnullable權限設定
user_idsJSONnullable群組成員的使用者ID列表
created_atBigInteger-建立時間戳
updated_atBigInteger-最後更新時間戳

知識表格

欄位名稱資料類型限制條件描述
idTextPRIMARY KEY, UNIQUE唯一識別碼 (UUID)
user_idText-知識庫擁有者
nameText-知識庫名稱
descriptionText-知識庫描述
dataJSONnullable知識庫內容
metaJSONnullable附加元數據
access_controlJSONnullable訪問控制規則
created_atBigInteger-創建時間戳
updated_atBigInteger-最後更新時間戳

access_control 領域的預期結構:

{
"read": {
"group_ids": ["group_id1", "group_id2"],
"user_ids": ["user_id1", "user_id2"]
},
"write": {
"group_ids": ["group_id1", "group_id2"],
"user_ids": ["user_id1", "user_id2"]
}
}

記憶表

列名數據類型約束描述
idStringPRIMARY KEY唯一識別碼 (UUID)
user_idString-記憶擁有者
contentText-記憶內容
created_atBigInteger-創建時間戳
updated_atBigInteger-最後更新時間戳

消息表

列名數據類型約束描述
idTextPRIMARY KEY唯一識別碼 (UUID)
user_idText-消息作者
channel_idTextnullable聯繫的頻道
parent_idTextnullable線程的父消息
contentText-消息內容
dataJSONnullable附加消息數據
metaJSONnullable消息元數據
created_atBigInteger-創建時間戳 (納秒)
updated_atBigInteger-最後更新時間戳 (納秒)

消息反應表

列名數據類型約束描述
idTextPRIMARY KEY唯一識別碼 (UUID)
user_idText-反應的用戶
message_idText-聯繫的消息
nameText-反應名稱/表情
created_atBigInteger-反應時間戳

模型表

列名數據類型約束描述
idTextPRIMARY KEY模型識別碼
user_idText-模型擁有者
base_model_idTextnullable父模型引用
nameText-顯示名稱
paramsJSON-模型參數
metaJSON-模型元數據
access_controlJSONnullable訪問權限
is_activeBooleandefault=True活躍狀態
created_atBigInteger-創建時間戳
updated_atBigInteger-最後更新時間戳

提示表

列名數據類型約束描述
commandStringPRIMARY KEY唯一命令識別符
user_idString-提示擁有者
titleText-提示標題
contentText-提示內容/模板
timestampBigInteger-最後更新時間戳
access_controlJSONnullable訪問權限

標籤表

欄位名稱資料類型限制條件描述
id字串主鍵 (組合式)正規化標籤識別碼
name字串-顯示名稱
user_id字串主鍵 (組合式)標籤擁有者
metaJSON可為空標籤元數據

關於標籤資料表的重要資訊:

  • 主鍵為組合式 (id, user_id)

工具資料表

欄位名稱資料類型限制條件描述
id字串主鍵唯一識別碼
user_id字串-工具擁有者
name文本-工具名稱
content文本-工具內容或代碼
specsJSON-工具規格
metaJSON-工具元數據
valvesJSON-工具控制設定
access_controlJSON可為空訪問權限
created_at大整數-建立時間戳
updated_at大整數-最後更新時間戳

使用者資料表

欄位名稱資料類型限制條件描述
id字串主鍵唯一識別碼
name字串-使用者姓名
email字串-使用者電子郵件
role字串-使用者角色
profile_image_url文本-頭像圖片路徑
last_active_at大整數-最後活動時間戳
updated_at大整數-最後更新時間戳
created_at大整數-建立時間戳
api_key字串唯一,可為空API認證密鑰
settingsJSON可為空使用者偏好設定
infoJSON可為空額外的使用者資訊
oauth_sub文本唯一OAuth主體識別碼

實體關係圖

為了幫助您可視化資料表之間的關係,請參考以下用Mermaid生成的實體關係圖(ERD)。