desktop/src-tauri/src/db_backup.rs
第 1 条注释,第 1 行
desktop/src-tauri/src/db_backup.rs:1
//! 数据库一致备份 + 备份前空间检查(V15/M1 余项:迁移/清理/重建前备份约定)。第 2 条注释,第 2 行
desktop/src-tauri/src/db_backup.rs:2
//!(空行)第 3 条注释,第 3 行
desktop/src-tauri/src/db_backup.rs:3
//! 规则要点:第 4 条注释,第 4 行
desktop/src-tauri/src/db_backup.rs:4
//! - 一致备份用 `VACUUM INTO` 单文件快照(WAL 下也是一致点;不是文件复制);第 5 条注释,第 5 行
desktop/src-tauri/src/db_backup.rs:5
//! - 要求目标剩余空间不少于数据库、WAL、SHM 总字节数的 1.1 倍;不足则失败,第 6 条注释,第 6 行
desktop/src-tauri/src/db_backup.rs:6
//! 调用方据此中止破坏性操作。第 7 条注释,第 7 行
desktop/src-tauri/src/db_backup.rs:7
//! - 按文件名顺序保留三份符合条件的快照,名称包含时间戳。第 8 条注释,第 8 行
desktop/src-tauri/src/db_backup.rs:8
//! 备份是应用管理的恢复路径,不绕过最长保留的清理语义(V15);第 9 条注释,第 9 行
desktop/src-tauri/src/db_backup.rs:9
//! - 旧 schema 库(我们的 setup 拒绝打开)用裸连接只读打开做备份——第 10 条注释,第 10 行
desktop/src-tauri/src/db_backup.rs:10
//! 重建路径先备份再删除。第 11 条注释,第 15 行
desktop/src-tauri/src/db_backup.rs:15
/// 备份保留份数。第 12 条注释,第 17 行
desktop/src-tauri/src/db_backup.rs:17
/// 剩余空间检查系数为 1.1;此检查不能确认快照尺寸上界。第 13 条注释,第 20 行
desktop/src-tauri/src/db_backup.rs:20
/// 库文件(含 -wal/-shm)当前占用的字节数。第 14 条注释,第 32 行
desktop/src-tauri/src/db_backup.rs:32
/// 备份目录(库文件同目录 backups/,与 backup_before_clear 同一布局)。第 15 条注释,第 40 行
desktop/src-tauri/src/db_backup.rs:40
/// 空间判定(纯函数,供测试):free ≥ needed×1.1 才允许备份。第 16 条注释,第 48 行
desktop/src-tauri/src/db_backup.rs:48
/// 备份前空间检查:目标盘剩余空间不足时报错(调用方中止破坏性操作)。第 17 条注释,第 65 行
desktop/src-tauri/src/db_backup.rs:65
/// 按文件名字典序保留最后 KEEP_BACKUPS 份符合前缀及 .sqlite 后缀的文件。第 18 条注释,第 85 行
desktop/src-tauri/src/db_backup.rs:85
/// 打开(可能 schema 不兼容的)旧库做只读备份连接。第 19 条注释,第 94 行
desktop/src-tauri/src/db_backup.rs:94
/// 一致备份当前可写库(调用方持有写连接;VACUUM INTO 单文件快照)。第 20 条注释,第 95 行
desktop/src-tauri/src/db_backup.rs:95
/// 返回备份文件路径;库无任何表(全新/空)时返回 None 不备份。第 21 条注释,第 119 行
desktop/src-tauri/src/db_backup.rs:119
// 同秒重复备份:追加序号避免覆盖。第 22 条注释,第 138 行
desktop/src-tauri/src/db_backup.rs:138
/// 一致备份一个我们不兼容的旧库(重建路径:先备份再删除)。第 23 条注释,第 139 行
desktop/src-tauri/src/db_backup.rs:139
/// 用只读裸连接 + VACUUM INTO;失败返回 Err(调用方不得删除原库)。第 24 条注释,第 245 行
desktop/src-tauri/src/db_backup.rs:245
// 备份是一致快照:可独立打开并读出数据(读毕关闭——第 25 条注释,第 246 行
desktop/src-tauri/src/db_backup.rs:246
// Windows 下未关闭的 SQLite 连接持有文件锁,会阻止 prune 删除)。第 26 条注释,第 255 行
desktop/src-tauri/src/db_backup.rs:255
// 再建立五份不同时间戳的备份,最终保留最后三份符合条件的快照。