Skip to main content
warning

本教程是社区贡献的内容,不受 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 数据库中有两个与核心功能无关的附加表,已被排除:

  • 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 作为主键
  • 频道名称不区分大小写(存储为小写)

Channel Member 表

列名数据类型约束描述
idTEXTNOT NULL频道成员资格的唯一标识符
channel_idTEXTNOT NULL频道的引用
user_idTEXTNOT NULL用户的引用
created_atBIGINT-成员资格创建的时间戳

Chat 表

列名数据类型约束描述
idStringPRIMARY KEY唯一标识符(UUID)
user_idString-聊天的所有者
titleText-聊天标题
chatJSON-聊天内容和历史
created_atBigInteger-创建时间戳
updated_atBigInteger-最后更新时间戳
share_idTextUNIQUE, nullable共享标识符
archivedBooleandefault=False存档状态
pinnedBooleandefault=False, nullable置顶状态
metaJSONserver_default=""包含标签的元数据
folder_idTextnullable父文件夹 ID

Chat ID Tag 表

列名数据类型约束描述
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元数据(arena, chat_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 为 null
  • 文件夹名称在同一父级内必须唯一

函数表

列名数据类型约束描述
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访问权限

标签表

列名数据类型约束描述
idStringPK (composite)规范化标签标识符
nameString-显示名称
user_idStringPK (composite)标签的所有者
metaJSONnullable标签元数据

关于标签表需要了解的事项:

  • 主键是复合的(id, user_id)

工具表

列名数据类型约束描述
idStringPRIMARY KEY唯一标识符
user_idString-工具的所有者
nameText-工具名称
contentText-工具内容/代码
specsJSON-工具规格
metaJSON-工具元数据
valvesJSON-工具控制设置
access_controlJSONnullable访问权限
created_atBigInteger-创建时间戳
updated_atBigInteger-最后更新时间戳

用户表

列名数据类型约束描述
idStringPRIMARY KEY唯一标识符
nameString-用户名
emailString-用户的电子邮件
roleString-用户角色
profile_image_urlText-个人资料图片路径
last_active_atBigInteger-最后活动时间戳
updated_atBigInteger-最后更新时间戳
created_atBigInteger-创建时间戳
api_keyStringUNIQUE, nullableAPI 认证密钥
settingsJSONnullable用户偏好设置
infoJSONnullable附加用户信息
oauth_subTextUNIQUEOAuth 主体标识符

实体关系图

为了帮助可视化表之间的关系,请参考下面使用 Mermaid 生成的实体关系图(ERD)。