跳转到内容

desktop/src-tauri/crates/core/tests/migration_v28.rs

第 1 条注释,第 1 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:1

//! V28(M1a):历史来源身份与存储分区。

第 2 条注释,第 2 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:2

//! 核对主机改名和同名场景下稳定的主机 ID,以及 legacy_unknown 来源归属。

第 3 条注释,第 3 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:3

//! 当前预发布存储拒绝旧数据库格式,不执行 v3 到 v4 迁移。

第 4 条注释,第 4 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:4

//! 核对归档身份、来源认领、分区重算和交换文件中的版本及字段,

第 5 条注释,第 5 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:5

//! 以及重复跳过、较高修订替换、独立记录新增和冲突保留。

第 6 条注释,第 42 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:42

// 改名:同一主机 ID,新增主机名观察,不产生第二个本机身份。

第 7 条注释,第 67 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:67

// 两台同名主机:键用 host_id,不用主机名;同名不发生键冲突(V28)。

第 8 条注释,第 83 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:83

// 两主机的同名实例注册互不覆盖(instance_id 主键不同命名空间)。

第 9 条注释,第 154 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:154

// 已核对本地文件归属时,可将来源认领为本机来源。

第 10 条注释,第 185 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:185

// 已属于其他主机的来源不被覆盖(导入来源不因本机扫描改归属)。

第 11 条注释,第 240 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:240

// 预发布约定:旧版本库直接拒绝打开(应用层提示重建),不做迁移。

第 12 条注释,第 244 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:244

// 手动写一个事件让库非空。

第 13 条注释,第 260 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:260

// 强制设置旧版本号。

第 14 条注释,第 275 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:275

// 两个来源实例各写一天数据:日分区按来源落盘,查询跨来源求和;

第 15 条注释,第 276 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:276

// 删除明细后分区与来源注册仍保留来源身份。

第 16 条注释,第 315 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:315

// 删除明细:分区与来源注册保留来源身份(不随清理丢失)。

第 17 条注释,第 336 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:336

// 导出按来源注册表关联记录;采集流程会先注册实例(run_adapter_scan)。

第 18 条注释,第 388 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:388

// JSON 往返稳定(版本化格式可被导入端解析)。

第 19 条注释,第 425 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:425

// 无现存 → 新增独立贡献。

第 20 条注释,第 438 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:438

// 同来源同键、同修订、内容一致 → 幂等跳过。

第 21 条注释,第 444 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:444

// 同修订不同内容 → 冲突(不按 token 大小裁决)。

第 22 条注释,第 451 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:451

// 修订号较高时,替换旧记录及其统计值。

第 23 条注释,第 459 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:459

// 修订同级更正但修订号相同:无法确认哪条修订更新,内容不同 → 冲突可见

第 24 条注释,第 460 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:460

// 与 ingest 一致:常规替换要求更高的修订号。

第 25 条注释,第 466 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:466

// 两侧均无修订号时,后续 corrected 状态可替换 final 记录。

第 26 条注释,第 490 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:490

// 更低修订 → 保留现存(Keep + 内容不同)→ 冲突可见。

第 27 条注释,第 498 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:498

// 不同记录键 → 互斥来源新增。

第 28 条注释,第 509 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:509

// 回归(2026-09-26 缺陷):扫描以 UTC 写日分区而用户按 Asia/Shanghai 查询

第 29 条注释,第 510 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:510

// ⇒ tz_version 不匹配导致 UI 永远为空。事件仍在 ⇒ 重算是推导非猜测。

第 30 条注释,第 512 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:512

// 模拟旧行为:UTC 日界提交(2026-09-25 18:30 UTC = 上海 09-26 02:30)。

第 31 条注释,第 543 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:543

// 修复:在用户时区重算事件覆盖范围。

第 32 条注释,第 555 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:555

// 事件归属上海日 2026-09-26(18:30Z = 02:30+08)。

第 33 条注释,第 557 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:557

// UTC 分区保留(多时区并存按 tz_version 区分,不互相污染)。

第 34 条注释,第 571 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:571

// WAL 约定:一个后台写者 + 只读连接并发。写事务未提交期间,

第 35 条注释,第 572 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:572

// open_readonly 的查询照常进行(M6 修复:UI 查询不再被长扫描阻塞)。

第 36 条注释,第 592 行

desktop/src-tauri/crates/core/tests/migration_v28.rs:592

// 写事务未提交:只读连接读到的仍是提交前视图,且不被阻塞。