diff --git a/src/routes/pipeline.rs b/src/routes/pipeline.rs index 940b7d0..c4010c1 100644 --- a/src/routes/pipeline.rs +++ b/src/routes/pipeline.rs @@ -75,8 +75,10 @@ pub async fn pipeline_reparse_persons( db: web::Data>, search_db: web::Data>, ) -> impl Responder { - // 1. 清除 search.db 中的人物关联(保留 tags 不变) + // 1. 清空 search.db 中的人物相关表(album_persons + persons + person_aliases) sqlx::query("DELETE FROM album_persons").execute(&search_db.pool).await.ok(); + sqlx::query("DELETE FROM person_aliases").execute(&search_db.pool).await.ok(); + sqlx::query("DELETE FROM persons").execute(&search_db.pool).await.ok(); // 2. 重置所有相册为未处理(触发管线重新解析) let reset_count = db.reset_all_processed_at().await; @@ -113,8 +115,9 @@ pub async fn pipeline_reparse_tags( db: web::Data>, search_db: web::Data>, ) -> impl Responder { - // 1. 清除 search.db 中的标签关联(保留 persons 不变) + // 1. 清空 search.db 中的标签相关表(album_tags + tags) sqlx::query("DELETE FROM album_tags").execute(&search_db.pool).await.ok(); + sqlx::query("DELETE FROM tags").execute(&search_db.pool).await.ok(); // 2. 重置所有相册为未处理(触发管线重新解析) let reset_count = db.reset_all_processed_at().await;