88 lines
3.1 KiB
Python
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) |