530a8b70a1
首页卡片支持修改/删除;详情页设置 Tab 可维护学校、年级与头像;系统设置新增数据备份下载与恢复;备份默认存 /root/grade-archive-backups,详见 docs/BACKUP.md。 Co-authored-by: Cursor <cursoragent@cursor.com>
3.4 KiB
3.4 KiB
数据备份与恢复
中学成绩档案系统 · 备份目录默认
/root/grade-archive-backups
1. 备份内容
每次备份生成一个压缩包 grade-archive_YYYYMMDD_HHMMSS.tar.gz,包含:
| 文件/目录 | 说明 |
|---|---|
database.sql |
PostgreSQL 全库导出(含 --clean,可覆盖恢复) |
uploads/ |
错题图片、学生头像等上传文件 |
manifest.json |
备份元信息(时间、库名) |
2. 自动备份
- 目录:
/root/grade-archive-backups(可通过.env中BACKUP_DIR修改) - 频率:应用启动后每 24 小时自动备份一次(
AUTO_BACKUP_INTERVAL_HOURS=24) - 保留:默认保留最近 30 天(
BACKUP_RETENTION_DAYS=30) - 系统 cron(可选,安装脚本会写入):每天凌晨 3:00 执行
deploy/backup.sh
环境变量(.env)
BACKUP_DIR=/root/grade-archive-backups
BACKUP_RETENTION_DAYS=30
AUTO_BACKUP_INTERVAL_HOURS=24
3. 手动备份(服务器命令行)
sudo BACKUP_DIR=/root/grade-archive-backups \
bash /opt/secondary-school-grade-archive/deploy/backup.sh
备份文件位于 /root/grade-archive-backups/。
4. 系统设置中下载备份
- 使用超级管理员登录
- 进入 系统设置 → 数据备份
- 点击 立即备份 或等待自动备份
- 在列表中点击 下载 保存
.tar.gz到本地
5. 更换服务器 — 数据恢复
方式 A:Web 界面(推荐)
- 在新服务器完成
deploy/install.sh并git pull到最新版本 - 超级管理员登录 → 系统设置 → 数据备份
- 在「数据恢复」区域上传旧服务器下载的
grade-archive_*.tar.gz - 恢复成功后建议执行:
sudo systemctl restart grade-archive
方式 B:命令行
- 将备份包复制到新服务器,例如
/root/grade-archive_20260628_030000.tar.gz - 执行:
sudo bash /opt/secondary-school-grade-archive/deploy/restore.sh \
/root/grade-archive_20260628_030000.tar.gz
- 按提示确认后,脚本会恢复数据库与
uploads/,并尝试重启服务
6. 迁移检查清单
- 旧服务器下载最新备份包
- 新服务器安装系统(
install.sh)并配置 Ollama / OCR 地址 - 上传备份并恢复
- 验证学生资料、成绩、错题图片、头像是否正常
- 确认
.env中OLLAMA_BASE_URL、OCR_SERVICE_URL符合新环境
7. 注意事项
- 恢复会覆盖当前数据库与
uploads目录,操作前请先备份当前数据 - 备份与恢复需要服务器已安装
pg_dump/psql(安装脚本已包含 PostgreSQL) - 备份目录在
/root下,仅 root 可读写;应用以 systemd 运行时需确保BACKUP_DIR对运行用户可写,或保持默认由 root cron / 管理员 API 触发 - 学生头像、学校、年级等资料保存在数据库
students表中,随数据库一并备份
8. 学生资料字段说明
| 字段 | 说明 |
|---|---|
| 姓名 | 必填 |
| 学校 | 可选,显示在卡片与详情 |
| 学段 | 初中 / 高中 |
| 年级 | 初一~初三 或 高一~高三(带明确标识) |
| 班级 | 如 3 或 3班 |
| 头像 | 保存在 uploads/{用户ID}/avatars/{学生ID}.jpg |
在学生详情页 设置 Tab 或首页卡片 修改 中维护;首页卡片支持 删除。