fix(P0): 修复一键生成视频成片库不显示 - project_id为空时跳过写表 #541
Reference in New Issue
Block a user
Delete Branch "fix/p0-generated-videos-not-created"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
一键生成的视频,渲染成功(100% completed)但成片库看不到。
根因
edit_plan_generation.py的_finalize_render_success中:一键生成场景下
edit_plan.project_id为空串,导致判断不通过,跳过了写generated_videos表。任务本身状态是 completed、progress=100%、result_count=1,所以任务列表看是完成的,只是成片库没记录。
修复
generation_task_id就写入,project_id有空就填没有就空串scripts/backfill_generated_videos.py,扫描已completed但无generated_videos记录的任务,从plan.config.rendered_url补写验证
cac603fac2toa936b88b0f代码审查结果 - PR #541
⚠️ 问题(1个需要修改)
.all()一次性将所有status=completed的任务加载到内存中。如果历史任务数量庞大(如数十万条),会导致 Worker 进程内存溢出崩溃。此外,在循环内部(第67行和第79行)对每个任务执行额外的数据库查询(检查是否存在、查询 EditPlan),构成了典型的 N+1 查询问题,极慢且会对 DB 造成巨大压力。💡 建议(1个可选)
yield_per)重构脚本逻辑。session.query(...).yield_per(500)进行流式迭代,或者使用 ID 范围分页处理。同时,建议将循环内的查询改为批量查询(例如先获取所有相关的source_edit_plan_id,再一次性in_查询EditPlanModel),以减少数据库交互次数。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-18 22:57:17 | 模型:
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #541 已关闭或合并,对应的预览环境已被清理。