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数据库中还有两个与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-最后更新时间戳(纳秒)

关于channel表需要了解的事项:

  • 主键使用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创建时间戳

Config表

列名数据类型约束默认值描述
idINTEGERNOT NULL-主键标识符
dataJSONNOT NULL-配置数据
versionINTEGERNOT NULL-配置版本号
created_atDATETIMENOT NULLCURRENT_TIMESTAMP创建时间戳
updated_atDATETIME-CURRENT_TIMESTAMP最后更新时间戳

Feedback表

列名数据类型约束描述
idTextPRIMARY KEY唯一标识符(UUID)
user_idText-提供反馈的用户
versionBigIntegerdefault=0反馈版本号
typeText-反馈类型
dataJSONnullable包括评级的反馈数据
metaJSONnullable元数据(竞技场、聊天ID等)
snapshotJSONnullable关联的聊天快照
created_atBigInteger-创建时间戳
updated_atBigInteger-最后更新时间戳

File表

列名数据类型约束描述
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")支持的附加元数据
}

Folder表

列名数据类型约束描述
idTextPRIMARY KEY唯一标识符(UUID)
parent_idTextnullable层次结构的父文件夹ID
user_idText-文件夹的所有者
nameText-文件夹名称
itemsJSONnullable文件夹内容
metaJSONnullable文件夹元数据
is_expandedBooleandefault=FalseUI展开状态
created_atBigInteger-创建时间戳
updated_atBigInteger-最后更新时间戳

关于folder表需要了解的事项:

  • 文件夹可以嵌套(parent_id引用)
  • 根文件夹的parent_id为null
  • 文件夹名称在同一父级下必须唯一

Function表

列名数据类型约束描述
idStringPRIMARY KEY唯一标识符
user_idString-函数的所有者
nameText-函数名称
typeText-函数类型
contentText-函数内容/代码
metaJSON-函数元数据
valvesJSON-函数控制设置
is_activeBoolean-函数活跃状态
is_globalBoolean-全局可用标志
created_atBigInteger-创建时间戳
updated_atBigInteger-最后更新时间戳

关于function表需要了解的事项:

  • type只能是:["filter", "action"]

Group表

列名数据类型约束描述
idTextPRIMARY KEY, UNIQUE唯一标识符(UUID)
user_idText-组的所有者/创建者
nameText-组名称
descriptionText-组描述
dataJSONnullable附加组数据
metaJSONnullable组元数据
permissionsJSONnullable权限配置
user_idsJSONnullable成员用户ID列表
created_atBigInteger-创建时间戳
updated_atBigInteger-最后更新时间戳

Knowledge表

列名数据类型约束描述
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"]
}
}

Memory表

列名数据类型约束描述
idStringPRIMARY KEY唯一标识符(UUID)
user_idString-记忆所有者
contentText-记忆内容
created_atBigInteger-创建时间戳
updated_atBigInteger-最后更新时间戳

Message表

列名数据类型约束描述
idTextPRIMARY KEY唯一标识符(UUID)
user_idText-消息作者
channel_idTextnullable关联频道
parent_idTextnullable线程的父消息
contentText-消息内容
dataJSONnullable附加消息数据
metaJSONnullable消息元数据
created_atBigInteger-创建时间戳(纳秒)
updated_atBigInteger-最后更新时间戳(纳秒)

Message Reaction表

列名数据类型约束描述
idTextPRIMARY KEY唯一标识符(UUID)
user_idText-反应的用户
message_idText-关联消息
nameText-反应名称/表情符号
created_atBigInteger-反应时间戳

Model表

列名数据类型约束描述
idTextPRIMARY KEY模型标识符
user_idText-模型所有者
base_model_idTextnullable父模型引用
nameText-显示名称
paramsJSON-模型参数
metaJSON-模型元数据
access_controlJSONnullable访问权限
is_activeBooleandefault=True活跃状态
created_atBigInteger-创建时间戳
updated_atBigInteger-最后更新时间戳

Prompt表

列名数据类型约束描述
commandStringPRIMARY KEY唯一命令标识符
user_idString-提示所有者
titleText-提示标题
contentText-提示内容/模板
timestampBigInteger-最后更新时间戳
access_controlJSONnullable访问权限

Tag表

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

关于tag表需要了解的事项:

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

Tool表

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

User表

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

实体关系图

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