Update prune.py

This commit is contained in:
Classic298 2025-08-22 18:29:26 +02:00 committed by GitHub
parent 155f53b867
commit 46288924a2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -421,8 +421,7 @@ class ChromaDatabaseCleaner(VectorDatabaseCleaner):
conn.execute("DROP TABLE IF EXISTS temp_valid_fts") conn.execute("DROP TABLE IF EXISTS temp_valid_fts")
return -1 # Signal FTS cleanup was skipped return -1 # Signal FTS cleanup was skipped
# Step 5: Atomic FTS cleanup operation # Step 5: FTS cleanup operation (already in transaction)
conn.execute("BEGIN IMMEDIATE")
try: try:
# Delete all FTS content # Delete all FTS content
conn.execute("DELETE FROM embedding_fulltext_search") conn.execute("DELETE FROM embedding_fulltext_search")
@ -440,13 +439,8 @@ class ChromaDatabaseCleaner(VectorDatabaseCleaner):
# Rebuild FTS index # Rebuild FTS index
conn.execute("INSERT INTO embedding_fulltext_search(embedding_fulltext_search) VALUES('rebuild')") conn.execute("INSERT INTO embedding_fulltext_search(embedding_fulltext_search) VALUES('rebuild')")
# Commit the atomic operation
conn.execute("COMMIT")
except Exception as e: except Exception as e:
# Rollback on any failure to preserve existing FTS data log.error(f"FTS cleanup failed: {e}")
conn.execute("ROLLBACK")
log.error(f"FTS cleanup failed, rolled back changes: {e}")
conn.execute("DROP TABLE IF EXISTS temp_valid_fts") conn.execute("DROP TABLE IF EXISTS temp_valid_fts")
return -1 # Signal FTS cleanup failed return -1 # Signal FTS cleanup failed