From ca0eb059e8b06f1b064b9a6b220c0cf419f7d0ed Mon Sep 17 00:00:00 2001 From: ChemaVX Date: Tue, 9 Jun 2026 14:00:54 +0000 Subject: [PATCH] fix: purga de inicio borra api_usage antes de research_sessions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La purga de sesiones >30d fallaba con FOREIGN KEY constraint failed: api_usage.session_id referencia research_sessions(id) pero nunca se borraba antes de la sesión padre (con PRAGMA foreign_keys = ON). Co-Authored-By: Claude Opus 4.8 (1M context) --- src/db/database.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/db/database.py b/src/db/database.py index cc64587..64ca0ab 100644 --- a/src/db/database.py +++ b/src/db/database.py @@ -442,7 +442,7 @@ class ResearchDB: ) session_ids = [row[0] for row in await cursor.fetchall()] - counts = {"sessions": 0, "sources": 0, "chunks": 0, "outputs": 0} + counts = {"sessions": 0, "sources": 0, "chunks": 0, "outputs": 0, "api_usage": 0} for sid in session_ids: await self.db.execute( @@ -453,6 +453,8 @@ class ResearchDB: counts["chunks"] += cur.rowcount cur = await self.db.execute("DELETE FROM outputs WHERE session_id = ?", (sid,)) counts["outputs"] += cur.rowcount + cur = await self.db.execute("DELETE FROM api_usage WHERE session_id = ?", (sid,)) + counts["api_usage"] += cur.rowcount cur = await self.db.execute("DELETE FROM sources WHERE session_id = ?", (sid,)) counts["sources"] += cur.rowcount cur = await self.db.execute("DELETE FROM research_sessions WHERE id = ?", (sid,))