| """ | |
| Run as follows: | |
| POSTGRES_HOST=localhost POSTGRES_PORT=5433 POSTGRES_PASSWORD=password123 python -m scripts.db.wipe | |
| """ | |
| import sys | |
| import os | |
| from sqlalchemy import text | |
| # Add project root to sys.path | |
| project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../')) | |
| sys.path.append(project_root) | |
| from src.backend.database.candidates.client import get_engine | |
| def wipe_database(): | |
| print("⚠️ WARNING: This will PERMANENTLY DELETE ALL RECORDS from the 'candidates' table and all related tables (CASCADE).") | |
| confirm = input("Type 'yes' to confirm: ") | |
| if confirm.lower() != 'yes': | |
| print("Operation cancelled.") | |
| return | |
| engine = get_engine() | |
| try: | |
| with engine.connect() as connection: | |
| print("Connecting to database...") | |
| # Using TRUNCATE with CASCADE is faster and cleaner for Postgres | |
| print("Truncating candidates table with CASCADE...") | |
| connection.execute(text("TRUNCATE TABLE candidates CASCADE;")) | |
| connection.commit() | |
| print("✅ Database entries wiped successfully.") | |
| except Exception as e: | |
| print(f"❌ Error wiping database: {e}") | |
| import traceback | |
| traceback.print_exc() | |
| if __name__ == "__main__": | |
| wipe_database() | |