优化: R-PD-10 storage_err DRY统一 + FR-D3 migrations if链转数组循环

- crud.rs 110处 .map_err(|e| Error::Storage(e.to_string())) 统一 storage_err helper(R-PD-10 DRY)

- migrations.rs run() 15个 if current_version<N 块改 step 数组循环,零行为变更(FR-D3),新增版本追加一行即可
This commit is contained in:
2026-06-16 03:27:01 +08:00
parent 49e61d4153
commit fc767e1db6
2 changed files with 139 additions and 167 deletions

View File

@@ -32,64 +32,30 @@ pub fn run(conn: &Connection) -> Result<()> {
)
.unwrap_or(0);
if current_version < 1 {
migrate_v1(conn)?;
}
// 迁移步骤链: 顺序执行,跳过已应用的版本(current_version < N 才跑)。
// 新增版本时,在此数组追加一项 (N, migrate_vN) 即可,无需改逻辑。
let steps: [(i32, fn(&Connection) -> Result<()>); 15] = [
(1, migrate_v1),
(2, migrate_v2),
(3, migrate_v3),
(4, migrate_v4),
(5, migrate_v5),
(6, migrate_v6),
(7, migrate_v7),
(8, migrate_v8),
(9, migrate_v9),
(10, migrate_v10),
(11, migrate_v11),
(12, migrate_v12),
(13, migrate_v13),
(14, migrate_v14),
(15, migrate_v15),
];
if current_version < 2 {
migrate_v2(conn)?;
}
if current_version < 3 {
migrate_v3(conn)?;
}
if current_version < 4 {
migrate_v4(conn)?;
}
if current_version < 5 {
migrate_v5(conn)?;
}
if current_version < 6 {
migrate_v6(conn)?;
}
if current_version < 7 {
migrate_v7(conn)?;
}
if current_version < 8 {
migrate_v8(conn)?;
}
if current_version < 9 {
migrate_v9(conn)?;
}
if current_version < 10 {
migrate_v10(conn)?;
}
if current_version < 11 {
migrate_v11(conn)?;
}
if current_version < 12 {
migrate_v12(conn)?;
}
if current_version < 13 {
migrate_v13(conn)?;
}
if current_version < 14 {
migrate_v14(conn)?;
}
if current_version < 15 {
migrate_v15(conn)?;
for (version, migrate_fn) in steps {
if current_version < version {
migrate_fn(conn)?;
}
}
Ok(())