跳到主要内容
警告

本教程由社区贡献,不受 Open WebUI 团队支持。它仅作为如何为您的特定用例定制 Open WebUI 的演示。想做贡献?请查看贡献教程。

[!警告]
本文档基于当前版本 (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跟踪数据库 schema 版本和迁移记录
18model管理 AI 模型配置和设置
19prompt存储 AI 提示的模板和配置
20tag管理用于内容分类的标签/标记
21tool存储系统工具和集成的配置
22user维护用户个人资料和账户信息

注意:Open-WebUI 的 SQLite 数据库中还有两个与 Open-WebUI 核心功能无关的表,在此已排除

  • Alembic 版本表
  • 迁移历史表

既然我们了解了所有表格,接下来看看每个表格的结构。

Auth 表

列名数据类型约束描述
id字符串主键唯一标识符
email字符串-用户邮箱
password文本-哈希密码
active布尔值-账户状态

关于 auth 表需要了解的事项

  • 使用 UUID 作为主键
  • users 表存在一对一关系(共享 id)

Channel 表

列名数据类型约束描述
id文本主键唯一标识符 (UUID)
user_id文本-频道的拥有者/创建者
type文本可为空频道类型
name文本-频道名称
description文本可为空频道描述
dataJSON可为空灵活数据存储
metaJSON可为空频道元数据
access_controlJSON可为空权限设置
created_at大整数-创建时间戳(纳秒)
updated_at大整数-最后更新时间戳(纳秒)

关于 auth 表需要了解的事项

  • 使用 UUID 作为主键
  • 频道名称不区分大小写(存储为小写)

Channel Member 表

列名数据类型约束描述
id文本不为空频道成员资格的唯一标识符
channel_id文本不为空频道引用
user_id文本不为空用户引用
created_at大整数-创建成员资格的时间戳

Chat 表

列名数据类型约束描述
id字符串主键唯一标识符 (UUID)
user_id字符串-聊天的拥有者
title文本-聊天标题
chatJSON-聊天内容和历史记录
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳
share_id文本唯一,可为空分享标识符
archived布尔值默认为 False归档状态
pinned布尔值默认为 False,可为空置顶状态
metaJSON服务器默认值="""元数据(包括标签)
folder_id文本可为空父文件夹 ID

Chat ID Tag 表

列名数据类型约束描述
id可变字符 (255)不为空唯一标识符
tag_name可变字符 (255)不为空标签名称
chat_id可变字符 (255)不为空聊天引用
user_id可变字符 (255)不为空用户引用
timestamp整型不为空创建时间戳

Config 表

列名数据类型约束默认值描述
id整型不为空-主键标识符
dataJSON不为空-配置数据
version整型不为空-配置版本号
created_at日期时间不为空当前时间戳创建时间戳
updated_at日期时间-当前时间戳最后更新时间戳

Feedback 表

列名数据类型约束描述
id文本主键唯一标识符 (UUID)
user_id文本-提供反馈的用户
version大整数默认为 0反馈版本号
type文本-反馈类型
dataJSON可为空反馈数据(包括评分)
metaJSON可为空元数据(竞技场、聊天 ID 等)
snapshotJSON可为空关联的聊天快照
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳

File 表

列名数据类型约束描述
id字符串主键唯一标识符
user_id字符串-文件拥有者
hash文本可为空文件哈希值/校验和
filename文本-文件名称
path文本可为空文件系统路径
dataJSON可为空文件相关数据
metaJSON可为空文件元数据
access_controlJSON可为空权限设置
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳

meta 字段的预期结构

{
"name": string, # Optional display name
"content_type": string, # MIME type
"size": integer, # File size in bytes
# Additional metadata supported via ConfigDict(extra="allow")
}

Folder 表

列名数据类型约束描述
id文本主键唯一标识符 (UUID)
parent_id文本可为空用于层级的父文件夹 ID
user_id文本-文件夹拥有者
name文本-文件夹名称
itemsJSON可为空文件夹内容
metaJSON可为空文件夹元数据
is_expanded布尔值默认为 FalseUI 展开状态
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳

关于 folder 表需要了解的事项

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

Function 表

列名数据类型约束描述
id字符串主键唯一标识符
user_id字符串-函数拥有者
name文本-函数名称
type文本-函数类型
content文本-函数内容/代码
metaJSON-函数元数据
valvesJSON-函数控制设置
is_active布尔值-函数活跃状态
is_global布尔值-全局可用标志
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳

关于 folder 表需要了解的事项

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

Group 表

列名数据类型约束描述
id文本主键,唯一唯一标识符 (UUID)
user_id文本-群组拥有者/创建者
name文本-群组名称
description文本-群组描述
dataJSON可为空其他群组数据
metaJSON可为空群组元数据
permissionsJSON可为空权限配置
user_idsJSON可为空成员用户 ID 列表
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳

Knowledge 表

列名数据类型约束描述
id文本主键,唯一唯一标识符 (UUID)
user_id文本-知识库拥有者
name文本-知识库名称
description文本-知识库描述
dataJSON可为空知识库内容
metaJSON可为空其他元数据
access_controlJSON可为空访问控制规则
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳

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 表

列名数据类型约束描述
id字符串主键唯一标识符 (UUID)
user_id字符串-记忆拥有者
content文本-记忆内容
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳

Message 表

列名数据类型约束描述
id文本主键唯一标识符 (UUID)
user_id文本-消息作者
channel_id文本可为空关联频道
parent_id文本可为空线程的父消息
content文本-消息内容
dataJSON可为空其他消息数据
metaJSON可为空消息元数据
created_at大整数-创建时间戳(纳秒)
updated_at大整数-最后更新时间戳(纳秒)

Message Reaction 表

列名数据类型约束描述
id文本主键唯一标识符 (UUID)
user_id文本-做出反应的用户
message_id文本-关联消息
name文本-反应名称/表情符号
created_at大整数-反应时间戳

Model 表

列名数据类型约束描述
id文本主键模型标识符
user_id文本-模型拥有者
base_model_id文本可为空父模型引用
name文本-显示名称
paramsJSON-模型参数
metaJSON-模型元数据
access_controlJSON可为空访问权限
is_active布尔值默认为 True活跃状态
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳

Prompt 表

列名数据类型约束描述
command字符串主键唯一命令标识符
user_id字符串-提示拥有者
title文本-提示标题
content文本-提示内容/模板
timestamp大整数-最后更新时间戳
access_controlJSON可为空访问权限

Tag 表

列名数据类型约束描述
id字符串主键(复合)规范化的标签标识符
name字符串-显示名称
user_id字符串主键(复合)标签拥有者
metaJSON可为空标签元数据

关于 tag 表需要了解的事项

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

Tool 表

列名数据类型约束描述
id字符串主键唯一标识符
user_id字符串-工具拥有者
name文本-工具名称
content文本-工具内容/代码
specsJSON-工具规格
metaJSON-工具元数据
valvesJSON-工具控制设置
access_controlJSON可为空访问权限
created_at大整数-创建时间戳
updated_at大整数-最后更新时间戳

User 表

列名数据类型约束描述
id字符串主键唯一标识符
name字符串-用户姓名
email字符串-用户邮箱
role字符串-用户角色
profile_image_url文本-头像路径
last_active_at大整数-最后活跃时间戳
updated_at大整数-最后更新时间戳
created_at大整数-创建时间戳
api_key字符串唯一,可为空API 认证密钥
settingsJSON可为空用户偏好设置
infoJSON可为空其他用户信息
oauth_sub文本唯一OAuth 主题标识符

实体关系图

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