Files
auto_control/.gitignore
T
butubb 55b1b74944 feat: 系统数据备份导出/导入后端——sqlite 在线快照 + apk 打包导出;上传校验预览→应用(自动快照当前库)+ 重启生效
导出:sqlite3 在线备份 API 对 data/users.db 做一致快照 → zip(users.db +
manifest.json:schema_version/逐表行数/apk 清单)+ 可选 data/apks/*.apk。
导出文件读入内存(BytesIO)发送后即删磁盘副本,避免 Windows 流式句柄锁残留。
导入:上传 zip/db → 暂存校验(integrity + 必需表 app_meta/user/task_job/
device_group + schema 版本提示)→ 确认应用:先自动快照当前库到
data/backups/pre_restore_*.db,再把备份落到 data/restore_pending/,由
web_server.py 在 init_db 之前 consume 换库——TaskManager 启动时才读库入内存、
Windows 不能热替换正被持有的库文件,故导入必须重启生效。

新增 web/system_api.py(export/preview/apply,全 @admin_required)与目录常量
BACKUP_DIR/RESTORE_STAGING_DIR/RESTORE_PENDING_DIR;.gitignore 排除运行产物。
2026-09-09 14:49:40 +08:00

54 lines
678 B
Plaintext

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
venv/
.venv/
env/
# 运行时数据
logs/*.log
data/apks/*.apk
data/*.migrated
data/*.db-shm
data/*.db-wal
# 数据库(含用户和任务数据,按需决定是否提交)
# IDE
.vscode/
.idea/
*.swp
*.swo
# Trae / AI 工具产物
.claude/
# OS
.DS_Store
Thumbs.db
desktop.ini
# 临时文件
*.tmp
*.bak
# 密钥/环境变量(真实 .env 含 token/密钥,绝不提交)
.env
.env.local
bin/adb/*
# 数据备份与损坏库(运维临时文件,不入库)
data/db_backup_*/
data/*.corrupt_*
data/users.db*
data/users.db-wal
data/users.db-shm
data/backups/
data/restore_staging/
data/restore_pending/