Remove duplicate sheet db entries on sheet validation
This commit is contained in:
parent
67d5dac0d1
commit
bdc2e7a050
@ -81,6 +81,19 @@ pub async fn get_composer_by_id(database: &Database, id: i64) -> sqlx::Result<Co
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn remove_duplicate_sheets(database: &Database) -> sqlx::Result<()> {
|
||||
for kind in SheetKindDiscriminants::iter() {
|
||||
let table = kind.get_database_table_name();
|
||||
sqlx::query(&format!(
|
||||
"DELETE FROM {} WHERE id NOT IN (SELECT MIN(id) FROM {} GROUP BY file_hash)",
|
||||
table, table
|
||||
))
|
||||
.execute(&database.connection)
|
||||
.await?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn fetch_all_sheets(database: &Database) -> sqlx::Result<Vec<Sheet>> {
|
||||
let mut sheets: Vec<Sheet> = Vec::new();
|
||||
|
||||
|
@ -13,6 +13,8 @@ pub async fn load_and_validate_sheets(
|
||||
database: &Database,
|
||||
directory: impl AsRef<Path>,
|
||||
) -> Vec<Sheet> {
|
||||
sheet_dao::remove_duplicate_sheets(database).await.unwrap();
|
||||
|
||||
let sheets = sheet_dao::fetch_all_sheets(database).await.unwrap();
|
||||
|
||||
debug!("Validating sheets from database...");
|
||||
|
Loading…
x
Reference in New Issue
Block a user