ignore UniqueViolation errors in inserts
This commit is contained in:
parent
8751e57433
commit
05d0fa7a87
1 changed files with 10 additions and 2 deletions
|
@ -8,6 +8,7 @@ use diesel::debug_query;
|
|||
use diesel::expression::operators::{And, Or};
|
||||
use diesel::prelude::*;
|
||||
use diesel::r2d2::{self, ConnectionManager};
|
||||
use diesel::result::{DatabaseErrorKind, Error};
|
||||
use diesel::sql_types::Bool;
|
||||
use diesel::sqlite::{Sqlite, SqliteConnection};
|
||||
use lexpr::value::Value::Symbol;
|
||||
|
@ -590,9 +591,16 @@ pub fn insert_entry<C: Connection<Backend = Sqlite>>(
|
|||
|
||||
let entry = Entry::try_from(&insert_entry)?;
|
||||
|
||||
diesel::insert_into(data::table)
|
||||
let result = diesel::insert_into(data::table)
|
||||
.values(insert_entry)
|
||||
.execute(connection)?;
|
||||
.execute(connection);
|
||||
|
||||
if let Some(error) = result.err() {
|
||||
match error {
|
||||
Error::DatabaseError(DatabaseErrorKind::UniqueViolation, _) => {}
|
||||
_ => return Err(anyhow!(error)),
|
||||
}
|
||||
}
|
||||
|
||||
Ok(Address::Hash(entry.hash()?))
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue