跳转到内容

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

// 再建立五份不同时间戳的备份,最终保留最后三份符合条件的快照。