跳转至

手册 · 工作区 · 容器化

本地数据持久化

DeepTutor 的默认安装不要求 PostgreSQL、MySQL 或其他数据库服务器。持久化状态被写入同一个运行主目录(runtime-home)之下,因此一个部署只需挂载、检查和备份一棵目录树。部分状态存储在 SQLite 中,而设置、生成的产物、知识库索引、缓存和导入的源文件仍保持为普通文件。

数据存放位置

运行主目录是您启动 DeepTutor 时所在的目录。可设置 DEEPTUTOR_HOME,或传入 deeptutor start --home / deeptutor init --home 来选择其他目录。在已发布的容器中,同一棵目录树被挂载到 /app/data。

默认管理员作用域使用以下布局:

路径 内容
data/user/settings/ JSON/YAML 设置与服务提供商凭据
data/user/chat_history.db SQLite 会话、消息、对话轮次、题库条目和练习数据
data/user/.runtime/ 私有运行时状态,例如 workspaces.sqlite3
data/user/workspace/ 默认 Content Workspace 与生成的产物
data/user/workspace/notebook/ 收藏集合及其 JSON 文件形式的索引(旧目录名)
data/user/workspace/co-writer/documents/doc_<id>/manifest.json 编写的笔记页面、块、修订和页面元数据
data/user/logs/ 应用日志
data/knowledge_bases/ 知识库索引与带版本控制的源数据
data/parse_cache/ 共享的文档解析缓存
data/users/<user-id>/ 启用本地多用户认证时的各用户工作区根目录
data/partners/<partner-id>/ Synthetic Partner 工作区
data/system/ 账户、授权、审计记录、索引和所有者凭据

所选 Content Workspace 可以位于 data/user 之外。在这种情况下,其私有学习状态位于 <workspace>/.deeptutor/data/ 之下,而账户设置、凭据、Memory 和工作区注册信息仍保留在运行主目录中。运行 deeptutor workspace show 可打印所选工作区的路径。

收藏和编写的笔记是相互独立的存储。旧的 notebook_entries SQLite 表存放题库条目;它并非编写的笔记块或收藏集合的存储位置。在所选的外部工作区中,这些基于文件的存储位于其私有 .deeptutor/data/workspace/ 目录树下,并沿用相同的 notebook/ 和 co-writer/documents/ 子目录。请备份完整的工作区,包括隐藏的 .deeptutor 文件,以同时保留学习记录以及笔记/收藏内容。

数据库支持

SQLite 是受支持的本地后端。没有受支持的 PostgreSQL 或 MySQL 连接设置;设置 DATABASE_URL 或类似的环境变量不会重定向 DeepTutor 的存储。

PocketBase 是通过 data/user/settings/integrations.json 配置的可选集成。它会在 PocketBase 中存储受支持的会话集合,但它不是 PostgreSQL 适配器,也不会将所有运行时状态移入 PocketBase。设置、凭据、知识库索引、解析缓存、日志和工作区产物仍保留在运行时目录树中。当前的 PocketBase 模式为单用户;若要使用受支持的本地多用户 JSON/SQLite 布局,请将 integrations.pocketbase_url 留空。

检查与备份状态

在 DeepTutor 创建数据后,从运行主目录中列出私有运行时目录树里的 SQLite 数据库:

find data -type f \( -name '*.db' -o -name '*.sqlite3' \) -print

对于所选的外部 Content Workspace,请检查其私有数据库文件:

workspace="$(deeptutor workspace show | sed -n 's/^Path: //p')"
if [ -d "$workspace/.deeptutor/data" ]; then
  find "$workspace/.deeptutor/data" -type f \
    \( -name '*.db' -o -name '*.sqlite3' \) -print
fi

在复制 data 或某个工作区之前,请先停止 DeepTutor 及所有 Partner 进程。SQLite 可能仍有活跃的预写日志文件,因此在应用运行期间只复制 .db 文件可能会丢失最近的事务。请备份完整的运行主目录 data 目录,以及每个单独配置的 Content Workspace。请将所有副本视为敏感数据,因为它们可能包含凭据、私密对话文本以及上传的学习材料。

实现与验证

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 dee/DeepTutor