跳到主要内容

数据库模型

本文档说明了 Studio 将数据存储在哪里,以及以何种形式存储。在确定备份范围或需要直接查询时,请参阅此文档。

存储有两个位置

PostgreSQL 存储元数据,文件系统(DATA_ROOT)存储应用源代码和构建产物。两者都必须备份,才能恢复 —— 仅备份数据库则没有应用代码,仅备份文件则无法知道谁创建了什么。

存储内容
PostgreSQL用户 · 应用元数据 · 对话 · 审计 · Watcher · 技能
文件系统(DATA_ROOT)工作区(应用源代码) · 构建产物 · 状态

PostgreSQL 采用两种模式之一 —— 捆绑容器(默认)或平台共享 PG。请参阅环境变量参考。


表 — 共11个​

分组表内容
用户studio_users账户 · 角色(admin/builder/viewer) · 密码哈希
studio_tokens已签发令牌
对话ask_conversations聊天线程
ask_history收发消息及耗时
Watcherwatchers周期性监控定义及通知设置
notification_seen通知确认状态
技能skills现场知识登记本
部署deploy_log部署历史
审计 · 用量audit_log谁做了什么
usage_logAI 令牌用量
模式schema_migrations已应用的迁移名称和时间
迁移日志中可见 flows

即使全新安装,也会先以 flows 创建,然后重命名为 watchers —— 因为迁移历史一旦记录便不再更改。如果直接编写查询,应使用 watchers。


模式变更由迁移管理​

服务器启动时,按编号顺序应用 src/infra/db/migrations/ 中的 .sql,并将已应用的文件名记录在 schema_migrations 中。已应用过的不会再次执行。

-- 지금 어디까지 적용됐는지
SELECT name, applied_at FROM schema_migrations ORDER BY name;
请勿手动修改模式

如果 schema_migrations 与实际模式不一致,下次升级时迁移会尝试「创建已存在的内容」而失败,导致界面完全无法启动。

升级前请先备份 → 备份与恢复。


文件系统 — DATA_ROOT​

默认路径是 /var/lib/pp-studio。以下内容全部存储于其中。

存储内容缺失时的影响
应用工作区(生成的源代码)无法打开应用 —— 数据库仅包含元数据
构建产物重新构建即可
会话 · 状态进行中的工作将丢失
数据库不在 DATA_ROOT 中

Studio 使用外部 PostgreSQL。即使整体备份 DATA_ROOT,数据库仍需要单独备份 —— 请参阅备份与恢复。


备份时容易遗漏的项目​

必须备份的内容遗漏后果
PostgreSQL 转储账户 · Watcher · 对话 · 审计记录消失
DATA_ROOT应用源代码丢失,无法打开应用
/etc/kopens/plantpulse-studio.env需要重新填写连接信息 · 密钥
请至少进行一次恢复演练

只备份而从未进行过恢复是最危险的状态。操作步骤见备份与恢复。


相关文档​