fix: 修复片段路径更新时的数据库表名错误

问题修复:
- 修复update_segment_file_path方法中错误的表名
- 将'video_segments'改为正确的'material_segments'
- 移除不存在的updated_at字段更新

 问题分析:
- 数据库中只有material_segments表,没有video_segments表
- material_segments表结构只包含created_at,没有updated_at字段
- 这导致AI分类后文件移动成功但片段路径更新失败

 修复效果:
- AI分类完成后能正确更新片段的file_path
- 数据库中的片段记录将指向新的分类目录
- 消除'no such table: video_segments'错误

 数据一致性:
- 确保文件移动和数据库更新的一致性
- 片段路径始终反映文件的真实位置
- 避免数据库记录与实际文件位置不符的问题
This commit is contained in:
imeepos 2025-07-14 16:21:08 +08:00
parent 48ad00cfcd
commit bb240833a4
2 changed files with 1 additions and 9 deletions

View File

@ -497,7 +497,7 @@ impl MaterialRepository {
let conn = self.connection.lock().unwrap();
let updated_rows = conn.execute(
"UPDATE video_segments SET file_path = ?, updated_at = datetime('now') WHERE id = ?",
"UPDATE material_segments SET file_path = ? WHERE id = ?",
params![new_file_path, segment_id]
)?;

View File

@ -302,7 +302,6 @@ impl VideoClassificationRepository {
// 调试检查TaskStatus::Pending的序列化结果
let pending_status_json = serde_json::to_string(&TaskStatus::Pending)?;
println!("🔍 TaskStatus::Pending序列化结果: {}", pending_status_json);
// 使用正确的JSON序列化格式查询
let pending_status_json = serde_json::to_string(&TaskStatus::Pending)?;
@ -500,13 +499,6 @@ impl VideoClassificationRepository {
Ok((row.get::<_, String>(0)?, row.get::<_, i32>(1)?))
})?;
println!("🔍 数据库中实际的任务状态分布:");
for row in debug_rows {
if let Ok((status, count)) = row {
println!(" 状态: {} -> 数量: {}", status, count);
}
}
// 获取任务统计
let mut stmt = conn.prepare(&format!(
"SELECT