Fixed a bug where all music sources would be deleted when trying to add sources with duplicate names
This commit is contained in:
parent
96d702b79e
commit
f3abb816ff
1 changed files with 10 additions and 5 deletions
|
@ -103,12 +103,17 @@ impl Manager {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_mount_dirs(&self, mount_dirs: &[MountDir]) -> Result<()> {
|
pub fn set_mount_dirs(&self, mount_dirs: &[MountDir]) -> Result<()> {
|
||||||
use self::mount_points::dsl::*;
|
|
||||||
let mut connection = self.db.connect()?;
|
let mut connection = self.db.connect()?;
|
||||||
diesel::delete(mount_points).execute(&mut connection)?;
|
connection
|
||||||
diesel::insert_into(mount_points)
|
.transaction::<_, diesel::result::Error, _>(|connection| {
|
||||||
.values(mount_dirs)
|
use self::mount_points::dsl::*;
|
||||||
.execute(&mut *connection)?; // TODO https://github.com/diesel-rs/diesel/issues/1822
|
diesel::delete(mount_points).execute(&mut *connection)?;
|
||||||
|
diesel::insert_into(mount_points)
|
||||||
|
.values(mount_dirs)
|
||||||
|
.execute(&mut *connection)?; // TODO https://github.com/diesel-rs/diesel/issues/1822
|
||||||
|
Ok(())
|
||||||
|
})
|
||||||
|
.map_err(anyhow::Error::new)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue