summaryrefslogtreecommitdiffstats
path: root/src/db/models/job.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/models/job.rs')
-rw-r--r--src/db/models/job.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/db/models/job.rs b/src/db/models/job.rs
index de91a25..8f6097b 100644
--- a/src/db/models/job.rs
+++ b/src/db/models/job.rs
@@ -83,15 +83,17 @@ impl Job {
log::trace!("Query = {}", diesel::debug_query::<diesel::pg::Pg, _>(&query));
- query
- .execute(database_connection)
- .context("Creating job in database")?;
+ database_connection.transaction::<_, Error, _>(|| {
+ query
+ .execute(database_connection)
+ .context("Creating job in database")?;
- dsl::jobs
- .filter(uuid.eq(job_uuid))
- .first::<Job>(database_connection)
- .with_context(|| format!("Finding created job in database: {}", job_uuid))
- .map_err(Error::from)
+ dsl::jobs
+ .filter(uuid.eq(job_uuid))
+ .first::<Job>(database_connection)
+ .with_context(|| format!("Finding created job in database: {}", job_uuid))
+ .map_err(Error::from)
+ })
}
pub fn env(&self, database_connection: &PgConnection) -> Result<Vec<crate::db::models::EnvVar>> {