67 lines
2.0 KiB
Python
67 lines
2.0 KiB
Python
"""
|
|
GKACHELE™ - Script para limpiar base de datos
|
|
© 2025 GKACHELE™. Todos los derechos reservados.
|
|
Uso: python limpiar_db.py
|
|
"""
|
|
|
|
import sqlite3
|
|
import os
|
|
|
|
BASE_DIR = os.path.dirname(__file__)
|
|
DATABASE_DIR = os.path.join(BASE_DIR, 'database')
|
|
MAIN_DB = os.path.join(DATABASE_DIR, 'main.db')
|
|
|
|
def limpiar_db():
|
|
"""Limpiar todas las tablas de la base de datos"""
|
|
if not os.path.exists(MAIN_DB):
|
|
print(f"❌ No se encontró la base de datos en: {MAIN_DB}")
|
|
return
|
|
|
|
try:
|
|
conn = sqlite3.connect(MAIN_DB)
|
|
c = conn.cursor()
|
|
|
|
# Mostrar datos actuales
|
|
c.execute('SELECT COUNT(*) FROM users')
|
|
user_count = c.fetchone()[0]
|
|
c.execute('SELECT COUNT(*) FROM sites')
|
|
site_count = c.fetchone()[0]
|
|
|
|
print("=" * 80)
|
|
print("📊 ESTADO ACTUAL DE LA BASE DE DATOS")
|
|
print("=" * 80)
|
|
print(f"Usuarios: {user_count}")
|
|
print(f"Sitios: {site_count}")
|
|
print("=" * 80)
|
|
|
|
respuesta = input("\n⚠️ ¿Estás seguro de que quieres limpiar TODA la base de datos? (escribe 'SI' para confirmar): ")
|
|
|
|
if respuesta.upper() != 'SI':
|
|
print("❌ Operación cancelada")
|
|
conn.close()
|
|
return
|
|
|
|
# Limpiar en orden (respetando foreign keys)
|
|
print("\n🗑️ Limpiando base de datos...")
|
|
c.execute('DELETE FROM widgets')
|
|
c.execute('DELETE FROM menus')
|
|
c.execute('DELETE FROM media')
|
|
c.execute('DELETE FROM content')
|
|
c.execute('DELETE FROM settings')
|
|
c.execute('DELETE FROM requests')
|
|
c.execute('DELETE FROM sites')
|
|
c.execute('DELETE FROM users')
|
|
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
print("✅ Base de datos limpiada exitosamente")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Error: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
|
|
if __name__ == '__main__':
|
|
limpiar_db()
|