From 608a49292f3ab306695bb44caf9f480e15f3748b Mon Sep 17 00:00:00 2001 From: Chris Tsang Date: Wed, 13 Oct 2021 16:51:12 +0800 Subject: [PATCH] Example of using a transaction --- examples/rocket_example/src/main.rs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/examples/rocket_example/src/main.rs b/examples/rocket_example/src/main.rs index 2fa77374..29470fbd 100644 --- a/examples/rocket_example/src/main.rs +++ b/examples/rocket_example/src/main.rs @@ -59,14 +59,22 @@ async fn update( let form = post_form.into_inner(); - post::ActiveModel { - id: post.id, - title: Set(form.title.to_owned()), - text: Set(form.text.to_owned()), - } - .save(db) + db.transaction::<_, (), sea_orm::DbErr>(|txn| { + Box::pin(async move { + post::ActiveModel { + id: post.id, + title: Set(form.title.to_owned()), + text: Set(form.text.to_owned()), + } + .save(txn) + .await + .expect("could not edit post"); + + Ok(()) + }) + }) .await - .expect("could not edit post"); + .unwrap(); Flash::success(Redirect::to("/"), "Post successfully edited.") }