注意
本教程为社区贡献内容,不由 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 数据库中的完整表清单。为方便起见,表按字母顺序排列并附带编号。
编号 | 表名 | 描述 |
---|---|---|
01 | auth | 存储用户认证凭据和登录信息 |
02 | channel | 管理聊天频道及其配置 |
03 | channel_member | 跟踪频道内的用户成员和权限 |
04 | chat | 存储聊天会话及其元数据 |
05 | chatidtag | 映射聊天与其关联标签之间的关系 |
06 | config | 维护系统范围的配置设置 |
07 | document | 存储知识管理相关的文档及元数据 |
08 | feedback | 捕捉用户反馈和评分 |
09 | file | 管理上传的文件及其元数据 |
10 | folder | 将文件和内容组织为层次结构 |
11 | function | 存储自定义函数及其配置 |
12 | group | 管理用户组及其权限 |
13 | knowledge | 存储知识库条目及相关信息 |
14 | memory | 维护聊天历史和上下文记忆 |
15 | message | 存储单独的聊天消息及其内容 |
16 | message_reaction | 记录用户对消息的反应(表情符号/回复) |
17 | migrate_history | 跟踪数据库模式版本和迁移记录 |
18 | model | 管理 AI 模型配置和设置 |
19 | prompt | 存储 AI 提示的模板和配置 |
20 | tag | 管理用于内容分类的标签/标识 |
21 | tool | 存储系统工具和集成配置 |
22 | user | 维护用户资料和账户信息 |
注意:Open-WebUI SQLite 数据库中还有两个与核心功能无关的表,它们已被排除在外:
- Alembic Version 表
- Migrate History 表
现在我们已经列出了所有的表,接下来让我们了解每个表的结构。
Auth 表
列名 | 数据类型 | 约束 | 描述 |
---|---|---|---|
id | String | PRIMARY KEY | 唯一标识符 |
String | - | 用户的邮箱 | |
password | Text | - | 哈希密码 |
active | Boolean | - | 账户状态 |
关于 auth 表需要了解的事项:
- 使用 UUID 作为主键
- 与
users
表为一对一关系(共享 id)