Migrate education data to SQLite
This commit is contained in:
+30
-10
@@ -1,6 +1,6 @@
|
||||
# 新时空教务管理系统
|
||||
|
||||
这是一个面向新时空教务业务的综合管理系统。迁移后 VPS 是正式业务数据主机,负责保存 `classnotes.txt`、`学生课时账户.md`、课程小结库、审核任务和操作记录;本机只保留微信群聊天记录采集/识别,并把课程小结批量推送到 VPS。
|
||||
这是一个面向新时空教务业务的综合管理系统。迁移后 VPS 是正式业务数据主机,负责保存 SQLite 数据库 `/data/xsk_education.db`;本机只保留微信群聊天记录采集/识别,并把课程小结批量推送到 VPS。
|
||||
|
||||
## 目录
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
- `MAINTENANCE.md`:日常检查、部署、数据保护和回滚流程。
|
||||
- `Makefile`:常用维护命令入口。
|
||||
- `scripts/deploy_to_vps.py`:部署新时空教务管理系统到 VPS。
|
||||
- `scripts/migrate_text_to_sqlite.py`:一次性把旧纯文本、JSON、JSONL 和课程小结 Markdown 迁移进 SQLite。
|
||||
- `scripts/import_course_summaries.py`:一次性导入历史课程小结 Markdown。
|
||||
- `scripts/sync_to_vps.py`:旧版正式数据同步脚本,迁移后不要继续常驻运行。
|
||||
- `scripts/smoke_test.js`:轻量前端行为烟测。
|
||||
@@ -71,7 +72,7 @@ XSK_PYTHON_IMAGE='python:3.12-slim'
|
||||
|
||||
## 手动同步数据
|
||||
|
||||
迁移完成后不要再用本机 `classnotes.txt` 和 `学生课时账户.md` 覆盖 VPS。下面命令只保留给迁移前或灾难恢复时使用,日常新增课程小结应走 `POST /api/ingest/course-summaries`。
|
||||
迁移完成后不要再用本机 `classnotes.txt` 和 `学生课时账户.md` 覆盖 VPS。SQLite 数据库 `/data/xsk_education.db` 是唯一事实源;运行时生成的 `/data/runtime_text_cache/` 只是兼容旧业务逻辑的缓存。下面命令只保留给迁移前或灾难恢复时使用,日常新增课程小结应走 `POST /api/ingest/course-summaries`。
|
||||
|
||||
```bash
|
||||
XSK_USE_SSHPASS=1 \
|
||||
@@ -87,7 +88,31 @@ python3 scripts/sync_to_vps.py --once --use-sshpass
|
||||
远端数据目录:
|
||||
|
||||
```text
|
||||
/root/新时空教务管理系统/data/
|
||||
/root/新时空教务管理系统/data/xsk_education.db
|
||||
```
|
||||
|
||||
## SQLite 迁移
|
||||
|
||||
首次迁移先 dry-run:
|
||||
|
||||
```bash
|
||||
cd /root/新时空教务管理系统
|
||||
make migrate-sqlite-dry-run
|
||||
```
|
||||
|
||||
确认严格校验通过后执行正式迁移:
|
||||
|
||||
```bash
|
||||
make migrate-sqlite
|
||||
```
|
||||
|
||||
正式迁移会生成:
|
||||
|
||||
```text
|
||||
/root/新时空教务管理系统/data/xsk_education.db
|
||||
/root/新时空教务管理系统/data/sqlite_migration_report_<时间>.json
|
||||
/root/新时空教务管理系统/archives/text-source-before-sqlite-<时间>.tar.gz
|
||||
/root/新时空教务管理系统/archives/text-source-before-sqlite-<时间>.tar.gz.sha256
|
||||
```
|
||||
|
||||
## 课程小结推送
|
||||
@@ -131,15 +156,10 @@ docker compose exec xsk-education-management python scripts/import_course_summar
|
||||
|
||||
## 数据备份
|
||||
|
||||
通过登记 API、课程小结自动入账或审核批准修改正式课时数据时,服务会在写入前自动备份本次会改动的业务文件。正式数据和辅助状态位于:
|
||||
通过登记 API、课程小结自动入账或审核批准修改正式课时数据时,服务会以 SQLite 事务写入 `/data/xsk_education.db`。旧纯文本事实源已封存为归档包;运行时文本缓存位于:
|
||||
|
||||
```text
|
||||
/root/新时空教务管理系统/data/classnotes.txt
|
||||
/root/新时空教务管理系统/data/学生课时账户.md
|
||||
/root/新时空教务管理系统/data/教师档案.md
|
||||
/root/新时空教务管理系统/data/course_summaries/
|
||||
/root/新时空教务管理系统/data/course_summary_state.json
|
||||
/root/新时空教务管理系统/data/operation_logs.jsonl
|
||||
/root/新时空教务管理系统/data/runtime_text_cache/
|
||||
```
|
||||
|
||||
备份目录位于:
|
||||
|
||||
Reference in New Issue
Block a user