58 lines
No EOL
1.7 KiB
Python
58 lines
No EOL
1.7 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script to delete all SIGMA rules from the database
|
|
This will clear existing rules so they can be regenerated with the improved LLM client
|
|
"""
|
|
|
|
from main import SigmaRule, SessionLocal
|
|
import logging
|
|
|
|
# Setup logging
|
|
logging.basicConfig(level=logging.INFO)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
def delete_all_sigma_rules():
|
|
"""Delete all SIGMA rules from the database"""
|
|
|
|
db = SessionLocal()
|
|
|
|
try:
|
|
# Count existing rules
|
|
total_rules = db.query(SigmaRule).count()
|
|
logger.info(f"Found {total_rules} SIGMA rules in database")
|
|
|
|
if total_rules == 0:
|
|
logger.info("No SIGMA rules to delete")
|
|
return 0
|
|
|
|
# Delete all SIGMA rules
|
|
logger.info("Deleting all SIGMA rules...")
|
|
deleted_count = db.query(SigmaRule).delete()
|
|
db.commit()
|
|
|
|
logger.info(f"✅ Successfully deleted {deleted_count} SIGMA rules")
|
|
|
|
# Verify deletion
|
|
remaining_rules = db.query(SigmaRule).count()
|
|
logger.info(f"Remaining rules in database: {remaining_rules}")
|
|
|
|
return deleted_count
|
|
|
|
except Exception as e:
|
|
logger.error(f"Error deleting SIGMA rules: {e}")
|
|
db.rollback()
|
|
raise
|
|
finally:
|
|
db.close()
|
|
|
|
if __name__ == "__main__":
|
|
print("🗑️ Deleting all SIGMA rules from database...")
|
|
print("This will allow regeneration with the improved LLM client.")
|
|
|
|
deleted_count = delete_all_sigma_rules()
|
|
|
|
if deleted_count > 0:
|
|
print(f"\n🎉 Successfully deleted {deleted_count} SIGMA rules!")
|
|
print("You can now regenerate them with the fixed LLM prompts.")
|
|
else:
|
|
print("\n✅ No SIGMA rules were found to delete.") |