diff --git a/Cargo.toml b/Cargo.toml index 65adce04..3641e030 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,7 +30,7 @@ futures-util = { version = "^0.3" } log = { version = "^0.4", optional = true } rust_decimal = { version = "^1", optional = true } sea-orm-macros = { version = "^0.2", path = "sea-orm-macros", optional = true } -sea-query = { version = "^0.16", features = ["thread-safe"] } +sea-query = { version = "^0.16.1", features = ["thread-safe"] } sea-strum = { version = "^0.21", features = ["derive", "sea-orm"] } serde = { version = "^1.0", features = ["derive"] } serde_json = { version = "^1", optional = true } diff --git a/sea-orm-macros/src/derives/entity_model.rs b/sea-orm-macros/src/derives/entity_model.rs index fbaaef15..004970c5 100644 --- a/sea-orm-macros/src/derives/entity_model.rs +++ b/sea-orm-macros/src/derives/entity_model.rs @@ -167,6 +167,7 @@ pub fn expand_derive_entity_model(data: Data, attrs: Vec) -> syn::Res "Uuid" => quote! { Uuid }, "Json" => quote! { Json }, "Decimal" => quote! { Decimal }, + "Vec" => quote! { Binary }, _ => { return Err(Error::new( field.span(), diff --git a/tests/common/bakery_chain/metadata.rs b/tests/common/bakery_chain/metadata.rs index b9707059..69579492 100644 --- a/tests/common/bakery_chain/metadata.rs +++ b/tests/common/bakery_chain/metadata.rs @@ -8,6 +8,7 @@ pub struct Model { pub uuid: Uuid, pub key: String, pub value: String, + pub bytes: Vec, } #[derive(Copy, Clone, Debug, EnumIter)] diff --git a/tests/common/setup/schema.rs b/tests/common/setup/schema.rs index 1a0a1c0a..78947c36 100644 --- a/tests/common/setup/schema.rs +++ b/tests/common/setup/schema.rs @@ -281,6 +281,7 @@ pub async fn create_metadata_table(db: &DbConn) -> Result { ) .col(ColumnDef::new(metadata::Column::Key).string().not_null()) .col(ColumnDef::new(metadata::Column::Value).string().not_null()) + .col(ColumnDef::new(metadata::Column::Bytes).binary().not_null()) .to_owned(); create_table(db, &stmt, Metadata).await diff --git a/tests/primary_key_tests.rs b/tests/primary_key_tests.rs index ea8255e9..06b2a13a 100644 --- a/tests/primary_key_tests.rs +++ b/tests/primary_key_tests.rs @@ -1,7 +1,7 @@ pub mod common; pub use common::{bakery_chain::*, setup::*, TestContext}; -use sea_orm::{entity::prelude::*, DatabaseConnection, Set}; +use sea_orm::{entity::prelude::*, DatabaseConnection, IntoActiveModel}; use uuid::Uuid; #[sea_orm_macros::test] @@ -21,18 +21,23 @@ async fn main() -> Result<(), DbErr> { } pub async fn create_metadata(db: &DatabaseConnection) -> Result<(), DbErr> { - let metadata = metadata::ActiveModel { - uuid: Set(Uuid::new_v4()), - key: Set("markup".to_owned()), - value: Set("1.18".to_owned()), + let metadata = metadata::Model { + uuid: Uuid::new_v4(), + key: "markup".to_owned(), + value: "1.18".to_owned(), + bytes: vec![1, 2, 3], }; - let res = Metadata::insert(metadata.clone()).exec(db).await?; + let res = Metadata::insert(metadata.clone().into_active_model()) + .exec(db) + .await?; + + assert_eq!(Metadata::find().one(db).await?, Some(metadata.clone())); assert_eq!( res.last_insert_id, if cfg!(feature = "sqlx-postgres") { - metadata.uuid.unwrap() + metadata.uuid } else { Default::default() }