跳到主要内容

数据库结构

注意

这是一篇社区贡献文档,不属于 OPL 数据空间官方支持范围。它更适合作为结构参考,不应被当成迁移契约或稳定 API 文档。

[!WARNING] 本页反映的是截至 OPL 数据空间 v0.9.0 的结构变化,应作为高层参考阅读,而不是把它当作数据库迁移脚本说明。

OPL 数据空间内部 SQLite 数据库

SQLite 数据库承载了 OPL 数据空间的用户管理、聊天历史、文件、知识库和大量核心配置。对维护者、排障人员和二次开发者来说,理解这套结构有助于更准确地判断“数据在哪一层丢了”。

组织感知部署

在现代 OPL 数据空间部署里,租户边界不仅由表结构决定。某些资源的组织归属可能直接写在资源行上,也可能通过关联资源、配置记录或访问授权推导得出。同处一个数据库 并不代表 同一租户可见

SQLite 文件位置

默认路径通常在 root -> data -> webui.db

📁 Root (/)
├── 📁 data
│   ├── 📁 cache
│   ├── 📁 uploads
│   ├── 📁 vector_db
│   └── 📄 webui.db
├── 📄 dev.sh
├── 📁 open_webui
├── 📄 requirements.txt
├── 📄 start.sh
└── 📄 start_windows.bat

复制数据库到本地

docker cp open-webui:/app/backend/data/webui.db ./webui.db

也可以直接进入容器查看:

docker exec -it open-webui /bin/sh

表概览

下面是 OPL 数据空间常见核心表及其大致用途:

表名说明
access_grant各类资源的标准化访问授权
auth用户认证凭据和登录信息
calendar / calendar_event日历与事件
channel / channel_member频道与成员权限
chat / message聊天会话和消息
config系统级配置
document / knowledge / knowledge_file文档、知识库和关联文件
file / folder上传文件与目录
function自定义函数与工具配置
group / group_member群组与成员
model模型配置
note笔记
oauth_sessionOAuth 会话
prompt / prompt_historyPrompt 与历史版本
shared_chat共享聊天快照
migrate_history迁移历史记录

这份列表的价值主要在于帮助你快速判断“数据落在哪一类表里”。如果你正在做升级、排障或租户迁移,建议把它与这些文档配合阅读:

使用建议

  • 不要 直接把这页当作迁移说明来写 SQL。
  • 如果你在做只读排查,优先先导出备份再查看。
  • 如果你在做组织化迁移、文件归属修复或向量库迁移,除了表结构,还要检查资源归属和 repair 状态。

相关文档