Merge pull request #140 from SeaQL/test-vec-u8

Testing Vec<u8>
This commit is contained in:
Chris Tsang 2021-09-10 17:37:31 +08:00 committed by GitHub
commit 62edf18582
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 16 additions and 8 deletions

View File

@ -30,7 +30,7 @@ futures-util = { version = "^0.3" }
log = { version = "^0.4", optional = true } log = { version = "^0.4", optional = true }
rust_decimal = { version = "^1", optional = true } rust_decimal = { version = "^1", optional = true }
sea-orm-macros = { version = "^0.2", path = "sea-orm-macros", 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"] } sea-strum = { version = "^0.21", features = ["derive", "sea-orm"] }
serde = { version = "^1.0", features = ["derive"] } serde = { version = "^1.0", features = ["derive"] }
serde_json = { version = "^1", optional = true } serde_json = { version = "^1", optional = true }

View File

@ -167,6 +167,7 @@ pub fn expand_derive_entity_model(data: Data, attrs: Vec<Attribute>) -> syn::Res
"Uuid" => quote! { Uuid }, "Uuid" => quote! { Uuid },
"Json" => quote! { Json }, "Json" => quote! { Json },
"Decimal" => quote! { Decimal }, "Decimal" => quote! { Decimal },
"Vec<u8>" => quote! { Binary },
_ => { _ => {
return Err(Error::new( return Err(Error::new(
field.span(), field.span(),

View File

@ -8,6 +8,7 @@ pub struct Model {
pub uuid: Uuid, pub uuid: Uuid,
pub key: String, pub key: String,
pub value: String, pub value: String,
pub bytes: Vec<u8>,
} }
#[derive(Copy, Clone, Debug, EnumIter)] #[derive(Copy, Clone, Debug, EnumIter)]

View File

@ -281,6 +281,7 @@ pub async fn create_metadata_table(db: &DbConn) -> Result<ExecResult, DbErr> {
) )
.col(ColumnDef::new(metadata::Column::Key).string().not_null()) .col(ColumnDef::new(metadata::Column::Key).string().not_null())
.col(ColumnDef::new(metadata::Column::Value).string().not_null()) .col(ColumnDef::new(metadata::Column::Value).string().not_null())
.col(ColumnDef::new(metadata::Column::Bytes).binary().not_null())
.to_owned(); .to_owned();
create_table(db, &stmt, Metadata).await create_table(db, &stmt, Metadata).await

View File

@ -1,7 +1,7 @@
pub mod common; pub mod common;
pub use common::{bakery_chain::*, setup::*, TestContext}; pub use common::{bakery_chain::*, setup::*, TestContext};
use sea_orm::{entity::prelude::*, DatabaseConnection, Set}; use sea_orm::{entity::prelude::*, DatabaseConnection, IntoActiveModel};
use uuid::Uuid; use uuid::Uuid;
#[sea_orm_macros::test] #[sea_orm_macros::test]
@ -21,18 +21,23 @@ async fn main() -> Result<(), DbErr> {
} }
pub async fn create_metadata(db: &DatabaseConnection) -> Result<(), DbErr> { pub async fn create_metadata(db: &DatabaseConnection) -> Result<(), DbErr> {
let metadata = metadata::ActiveModel { let metadata = metadata::Model {
uuid: Set(Uuid::new_v4()), uuid: Uuid::new_v4(),
key: Set("markup".to_owned()), key: "markup".to_owned(),
value: Set("1.18".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!( assert_eq!(
res.last_insert_id, res.last_insert_id,
if cfg!(feature = "sqlx-postgres") { if cfg!(feature = "sqlx-postgres") {
metadata.uuid.unwrap() metadata.uuid
} else { } else {
Default::default() Default::default()
} }