💾 核心记忆:新增AstrBot数据备份方案(tar打包/volume映射双方案)

This commit is contained in:
ATRI
2026-04-29 23:26:17 +08:00
parent f9bf8474f0
commit a38cf4f76b

View File

@@ -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 |