diff --git a/我的核心记忆.md b/我的核心记忆.md index f718619..949c3e7 100644 --- a/我的核心记忆.md +++ b/我的核心记忆.md @@ -224,3 +224,50 @@ - **插件修复**:`access_others_chat_history` 查不到记录→根因`default:`前缀→改为SQLite直查→成功 - **核心记忆**:主人发来5800行聊天记录,补全被压缩的凌晨~下午内容 +## 💾 AstrBot数据备份方案 + +**问题说明:** `/AstrBot/data/` 在Docker容器中没有绑定挂载,数据存储在overlay层。更新AstrBot镜像时,以下数据会丢失: +- 插件配置 (`/AstrBot/data/config/`) +- Skill文件 (`/AstrBot/data/skills/`) +- 工作区数据 (`/AstrBot/data/workspaces/`) +- 数据库 (`/AstrBot/data/data_v4.db`) +- 插件数据 (`/AstrBot/data/plugins/`) +- 知识库 (`/AstrBot/data/knowledge_base/`) +- T2I模板 (`/AstrBot/data/t2i_templates/`) + +**已映射的安全目录:** `/app/data/` → `/opt/qqbot/astrbot/data/` + +### 方案一:更新前手动备份(已验证可行) + +```bash +# 在宿主机上执行,把/AstrBot/data下需要保留的数据打包到已映射目录 +docker exec astrbot tar czf /app/data/astrbot_backup_$(date +%Y%m%d_%H%M%S).tar.gz \ + -C /AstrBot data/config data/skills data/workspaces data/plugins data/data_v4.db data/knowledge_base data/t2i_templates + +# 验证备份文件 +ls -lh /opt/qqbot/astrbot/data/astrbot_backup_*.tar.gz + +# 更新AstrBot后恢复 +docker exec astrbot tar xzf /app/data/astrbot_backup_20260429_*.tar.gz -C /AstrBot +``` + +### 方案二:永久解决(推荐) + +在 `docker-compose.yml` 中增加一行映射: + +```yaml +volumes: + - ./astrbot/data:/app/data + - ./astrbot/config:/app/config + - ./astrbot/astrbot_data:/AstrBot/data # 🆕 加这一行 +``` + +### 安全数据(无需备份) + +| 数据 | 原因 | +|:---|:---| +| Gitea/GitHub笔记 | 远程仓库双推,pull回来即可 | +| 核心记忆 (`我的核心记忆.md`) | 已推送到Gitea+GitHub | +| Skill文档(工作区副本) | 已推送到Gitea+GitHub | + +