summaryrefslogtreecommitdiffstats
path: root/src/db/models/envvar.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/models/envvar.rs')
-rw-r--r--src/db/models/envvar.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/db/models/envvar.rs b/src/db/models/envvar.rs
index b5fcc4f..d3c7c64 100644
--- a/src/db/models/envvar.rs
+++ b/src/db/models/envvar.rs
@@ -43,14 +43,16 @@ impl EnvVar {
value: v,
};
- diesel::insert_into(envvars::table)
- .values(&new_envvar)
- .on_conflict_do_nothing()
- .execute(database_connection)?;
+ database_connection.transaction::<_, Error, _>(|| {
+ diesel::insert_into(envvars::table)
+ .values(&new_envvar)
+ .on_conflict_do_nothing()
+ .execute(database_connection)?;
- dsl::envvars
- .filter(name.eq(k.as_ref()).and(value.eq(v)))
- .first::<EnvVar>(database_connection)
- .map_err(Error::from)
+ dsl::envvars
+ .filter(name.eq(k.as_ref()).and(value.eq(v)))
+ .first::<EnvVar>(database_connection)
+ .map_err(Error::from)
+ })
}
}