跳到主要内容
警告

本教程由社区贡献,不获得 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跟踪数据库模式版本和迁移记录
18model管理 AI 模型配置和设置
19prompt存储 AI 提示的模板和配置
20tag管理内容分类的标签
21tool存储系统工具和集成的配置
22user维护用户配置文件和账户信息

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

  • Alembic 版本表
  • 迁移历史表

现在我们已经列出了所有表,接下来了解每个表的结构。

认证表

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

关于认证表的须知事项

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

频道表

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

关于认证表的须知事项

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

频道成员表

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

聊天表

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

聊天 ID 标签表

列名数据类型约束描述
idVARCHAR(255)非空唯一标识符
tag_nameVARCHAR(255)非空标签名称
chat_idVARCHAR(255)非空聊天引用
user_idVARCHAR(255)非空用户引用
timestamp整数非空创建时间戳

配置

列名数据类型约束默认描述
id整数非空-主键标识符
dataJSON非空-配置数据
version整数非空-配置版本号
created_at日期时间非空CURRENT_TIMESTAMP创建时间戳
updated_at日期时间-CURRENT_TIMESTAMP上次更新时间戳

反馈表

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

文件表

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

文件夹表

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

关于文件夹表的须知事项

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

函数表

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

关于文件夹表的须知事项

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

群组表

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

知识表

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

记忆表

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

消息表

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

消息反应表

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

模型表

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

提示表

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

标签表

列名数据类型约束描述
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)。