43 lines
1.0 KiB
Rust
43 lines
1.0 KiB
Rust
use anyhow::Result;
|
|
use sea_orm::{ConnectionTrait, Database, EntityTrait, IntoActiveModel, Schema};
|
|
|
|
mod entity;
|
|
|
|
use entity::*;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<()> {
|
|
let db = Database::connect("sqlite::memory:").await.unwrap();
|
|
|
|
let builder = db.get_database_backend();
|
|
let schema = Schema::new(builder);
|
|
let stmt = schema.create_table_from_entity(Entity);
|
|
db.execute(builder.build(&stmt)).await?;
|
|
|
|
let model = Model {
|
|
id: 100,
|
|
name: "Hello".to_owned(),
|
|
};
|
|
|
|
let res = Entity::insert(model.clone().into_active_model())
|
|
.exec(&db)
|
|
.await?;
|
|
|
|
assert_eq!(Entity::find().one(&db).await?, Some(model.clone()));
|
|
assert_eq!(res.last_insert_id, model.id);
|
|
|
|
let model = Model {
|
|
id: -10,
|
|
name: "World".to_owned(),
|
|
};
|
|
|
|
let res = Entity::insert(model.clone().into_active_model())
|
|
.exec(&db)
|
|
.await?;
|
|
|
|
assert_eq!(Entity::find().one(&db).await?, Some(model.clone()));
|
|
assert_eq!(res.last_insert_id, model.id);
|
|
|
|
Ok(())
|
|
}
|