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
|
.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>> {
|
pub async fn fetch_all_sheets(database: &Database) -> sqlx::Result<Vec<Sheet>> {
|
||||||
let mut sheets: Vec<Sheet> = Vec::new();
|
let mut sheets: Vec<Sheet> = Vec::new();
|
||||||
|
|
||||||
|
@ -13,6 +13,8 @@ pub async fn load_and_validate_sheets(
|
|||||||
database: &Database,
|
database: &Database,
|
||||||
directory: impl AsRef<Path>,
|
directory: impl AsRef<Path>,
|
||||||
) -> Vec<Sheet> {
|
) -> Vec<Sheet> {
|
||||||
|
sheet_dao::remove_duplicate_sheets(database).await.unwrap();
|
||||||
|
|
||||||
let sheets = sheet_dao::fetch_all_sheets(database).await.unwrap();
|
let sheets = sheet_dao::fetch_all_sheets(database).await.unwrap();
|
||||||
|
|
||||||
debug!("Validating sheets from database...");
|
debug!("Validating sheets from database...");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user