数据与备份
数据存在哪里
| 数据 | 云端 | 本地 |
|---|---|---|
| 学校、年级、班级 | Neon | 本机 PostgreSQL |
| 大型考试、周测 | Neon | 本机 PostgreSQL |
| 管理员账号、角色、审计日志 | Neon | 本机 PostgreSQL |
| 设备云端绑定关系 | Neon | 本机 PostgreSQL |
| 当前设备班级、显示偏好、离线缓存 | 浏览器本地 | 浏览器本地 |
浏览器里的数据只属于当前设备;换浏览器、清缓存都会丢失,需要重新选择班级。
清缓存会丢数据吗
不会丢考试数据。清除站点数据只会移除:
- 当前设备选择的班级;
- 大屏设计和字体等本机偏好;
- 离线缓存。
考试、周测、学校结构和用户账号都在数据库里,不受影响。清除后回到首页重新选择班级即可。
怎么备份
Vercel 云端
bash
pg_dump --dbname="生产连接串" --format=custom --no-owner --no-privileges \
--file=novora-YYYY-MM-DD.dump也可以使用 Neon 自带的项目分支或恢复能力。恢复演练应使用独立的 Neon 项目或分支。
本地 Docker 部署
bash
sudo docker compose exec db pg_dump -U novora -d novora -F c -f /tmp/novora.dump
sudo docker compose cp db:/tmp/novora.dump ./novora-$(date +%F).dump本地 Node 部署
bash
pg_dump --dbname="生产连接串" --format=custom --no-owner --no-privileges \
--file=novora-$(date +%F).dump备份文件包含管理员密码哈希和全部考试数据,应加密保存并限制访问。必须定期做恢复演练,无法验证恢复的备份不算可靠备份。
建议的备份周期
| 周期 | 工作 |
|---|---|
| 每次更新前 | 完整备份 |
| 每周 | 一次完整备份 |
| 每月 | 在独立库上演练一次恢复 |
| 每学期 | 归档一份到离线介质 |
迁移到另一套部署
从 Vercel 迁到本地,或反向迁移:
- 备份源数据库(
pg_dump); - 在目标环境完成一次干净部署,确认能正常登录和初始化;
- 把备份恢复到目标数据库(
pg_restore); - 修改目标环境的
DATABASE_URL指向新库; - 重新启动或重新部署;
- 完整验收:管理员登录、学校结构、考试与周测、设备绑定、PDF、ClassIsland 同步;
- 确认无误后再停用旧实例。
迁移前提醒使用方暂停录入,避免迁移过程中产生新数据。
能导出成 Excel 或 PDF 吗
考试安排可以导出:
- A4 PDF:从安排预览入口下载,大型考试与周测分别导出;
- JSON:大型考试与周测都支持导出,便于备份和跨实例导入。
目前没有直接导出 Excel 的功能,需要表格时可以把 JSON 导入表格软件再整理。
数据维护和重置
系统设置支持整体或按模块清理大型考试、周测、学校结构、设备/插件和调度设置。登录用户不会随业务数据重置自动删除。
重置是高风险操作。执行前:
- 确认选择的模块;
- 导出或备份数据;
- 通知正在使用系统的人员;
- 避免多名管理员同时操作;
- 完成后重新验收设备绑定和调度。
能不能只删某一场考试
可以。在大型考试模块选中该考试后删除,页面会提供一次立即撤销机会。删除会同时影响适用范围内设备的显示,操作前确认当前切换的是正确考试。
只想临时不显示时,改用停用该考试的分科目,不要删除。