Files
NetAlertX/scripts/db_empty/db_empty.py
2025-11-09 17:03:25 +00:00

32 lines
808 B
Python
Executable File

import sqlite3
import os
# Connect to the database using environment variable
db_path = os.path.join(
os.getenv('NETALERTX_DB', '/data/db'),
'app.db'
)
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
# Get the names of all tables (excluding SQLite internal tables)
cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%';")
tables = cursor.fetchall()
# Disable foreign key constraints temporarily
cursor.execute("PRAGMA foreign_keys = OFF;")
# Delete all rows from each table
for (table_name,) in tables:
cursor.execute(f"DELETE FROM {table_name};")
# Commit changes and re-enable foreign keys
conn.commit()
cursor.execute("PRAGMA foreign_keys = ON;")
# Vacuum to shrink database file
cursor.execute("VACUUM;")
# Close connection
conn.close()