优化: 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:
@@ -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(())
|
||||
|
||||
Reference in New Issue
Block a user