Files
railseek6/clear_databases.py

88 lines
3.1 KiB
Python

import requests
import json
import time
def clear_all_databases():
"""Clear all databases and reset the system"""
base_url = "http://localhost:3015"
api_key = "jleu1212"
print("=== CLEARING ALL DATABASES ===")
headers = {"X-API-Key": api_key}
# 1. Get current document status
print("1. Getting current document status...")
try:
response = requests.get(f"{base_url}/documents", headers=headers)
if response.status_code == 200:
docs_data = response.json()
processed = docs_data.get('statuses', {}).get('PROCESSED', [])
failed = docs_data.get('statuses', {}).get('FAILED', [])
print(f" Found {len(processed)} processed documents")
print(f" Found {len(failed)} failed documents")
else:
print(f" Could not get document status: {response.status_code}")
except Exception as e:
print(f" Error getting document status: {e}")
# 2. Clear documents via API if endpoint exists
print("2. Clearing documents...")
try:
# Try to clear via documents endpoint
clear_response = requests.delete(f"{base_url}/documents", headers=headers)
if clear_response.status_code in [200, 204]:
print(" ✅ Documents cleared via API")
else:
print(f" ⚠️ API clear returned: {clear_response.status_code}")
except Exception as e:
print(f" ⚠️ API clear failed: {e}")
# 3. Clear storage directories manually
print("3. Clearing storage directories...")
import shutil
import os
directories_to_clear = [
"rag_storage",
"test_rag_storage",
"test_indexing_workspace",
"real_test_workspace",
"test_optimization_workspace"
]
for directory in directories_to_clear:
if os.path.exists(directory):
try:
shutil.rmtree(directory)
print(f" ✅ Cleared: {directory}")
except Exception as e:
print(f" ❌ Failed to clear {directory}: {e}")
else:
print(f" ⏭️ Directory not found: {directory}")
# 4. Verify system is clean
print("4. Verifying clean state...")
time.sleep(2) # Wait for cleanup
try:
response = requests.get(f"{base_url}/documents", headers=headers)
if response.status_code == 200:
docs_data = response.json()
total_docs = sum(len(docs) for docs in docs_data.get('statuses', {}).values())
print(f" Total documents remaining: {total_docs}")
if total_docs == 0:
print(" ✅ System is clean")
else:
print(" ⚠️ Some documents may still exist")
else:
print(f" ⚠️ Could not verify clean state: {response.status_code}")
except Exception as e:
print(f" ⚠️ Verification failed: {e}")
print("\n=== DATABASE CLEANUP COMPLETE ===")
return True
if __name__ == "__main__":
success = clear_all_databases()
exit(0 if success else 1)