diff --git a/Cargo.toml b/Cargo.toml index 21c31f1..9377934 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -104,6 +104,7 @@ sea-query-binder = { version = "0.6", features = [ "sqlx-postgres", "with-uuid", "with-chrono", + "with-rust_decimal", ] } # -- Serde serde = { version = "1", features = ["derive"] } diff --git a/ultimates/ultimate-db/src/base/crud_fns.rs b/ultimates/ultimate-db/src/base/crud_fns.rs index 09714b4..4b76605 100644 --- a/ultimates/ultimate-db/src/base/crud_fns.rs +++ b/ultimates/ultimate-db/src/base/crud_fns.rs @@ -21,7 +21,6 @@ where let ctx = mm.ctx_ref()?; // -- Extract fields (name / sea-query value expression) let mut fields = data.not_none_sea_fields(); - fields = SeaFields::new(fields.into_iter().filter(|f| f.iden.to_string() != "id").collect()); fields = prep_fields_for_create::(fields, ctx); // -- Build query diff --git a/ultimates/ultimate-db/src/base/db_bmc.rs b/ultimates/ultimate-db/src/base/db_bmc.rs index 014b6b1..1b149ca 100644 --- a/ultimates/ultimate-db/src/base/db_bmc.rs +++ b/ultimates/ultimate-db/src/base/db_bmc.rs @@ -55,4 +55,10 @@ pub trait DbBmc { fn has_optimistic_lock() -> bool { false } + + /// 是否过滤用 column id + /// default: fals + fn filter_column_id() -> bool { + false + } } diff --git a/ultimates/ultimate-db/src/base/utils.rs b/ultimates/ultimate-db/src/base/utils.rs index 54c9490..dfb04ca 100644 --- a/ultimates/ultimate-db/src/base/utils.rs +++ b/ultimates/ultimate-db/src/base/utils.rs @@ -20,6 +20,10 @@ where fields = add_timestamps_for_create(fields, ctx); } + if MC::filter_column_id() { + fields = SeaFields::new(fields.into_iter().filter(|f| f.iden.to_string() != "id").collect()); + } + fields }