Initial commit: Sistema Autoparts DB

- Base de datos SQLite con información de vehículos
- Dashboard web con Flask y Bootstrap
- Scripts de web scraping para RockAuto
- Interfaz CLI para consultas
- Documentación completa del proyecto

Incluye:
- 12 marcas de vehículos
- 10,923 modelos
- 10,919 especificaciones de motores
- 12,075 combinaciones modelo-año-motor
This commit is contained in:
2026-01-19 08:45:03 +00:00
commit f395d67136
59 changed files with 10881 additions and 0 deletions

102
remove_old_vehicles.py Normal file
View File

@@ -0,0 +1,102 @@
#!/usr/bin/env python3
"""
Script para eliminar vehículos de 1975 hacia abajo de la base de datos
"""
import sqlite3
import os
def remove_old_vehicles():
# Verificar que la base de datos exista
db_path = "vehicle_database/vehicle_database.db"
if not os.path.exists(db_path):
print(f"Error: Base de datos no encontrada en {db_path}")
return
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
print("Eliminando vehículos de 1975 hacia abajo de la base de datos...")
try:
# Contar cuántos vehículos vamos a eliminar antes de hacerlo
cursor.execute("""
SELECT COUNT(*)
FROM model_year_engine mye
JOIN years y ON mye.year_id = y.id
WHERE y.year <= 1975
""")
count_to_delete = cursor.fetchone()[0]
print(f"Se eliminarán {count_to_delete} vehículos de 1975 hacia abajo")
if count_to_delete > 0:
# Confirmar antes de eliminar
confirm = input("¿Deseas continuar con la eliminación? (s/N): ")
if confirm.lower() != 's':
print("Operación cancelada.")
return
# Eliminar las combinaciones modelo-año-motor para años <= 1975
cursor.execute("""
DELETE FROM model_year_engine
WHERE year_id IN (
SELECT id FROM years WHERE year <= 1975
)
""")
# Eliminar los años <= 1975 que ya no tienen registros asociados
cursor.execute("""
DELETE FROM years
WHERE year <= 1975
AND id NOT IN (
SELECT DISTINCT year_id FROM model_year_engine
)
""")
conn.commit()
print(f"Se eliminaron {count_to_delete} registros de vehículos de 1975 hacia abajo")
# Mostrar algunos de los años que se eliminaron
print("\nAños eliminados:")
cursor.execute("""
SELECT DISTINCT y.year
FROM years y
WHERE y.year <= 1975
ORDER BY y.year DESC
""")
deleted_years = cursor.fetchall()
if deleted_years:
for year in deleted_years:
print(f" - {year[0]}")
else:
print(" (No quedan años <= 1975 en la base de datos)")
else:
print("No hay vehículos de 1975 hacia abajo para eliminar")
# Mostrar un resumen de la base de datos actualizada
print("\nResumen de la base de datos actualizada:")
# Contar vehículos restantes
cursor.execute("""
SELECT COUNT(*)
FROM model_year_engine mye
JOIN years y ON mye.year_id = y.id
""")
total_vehicles = cursor.fetchone()[0]
print(f"Total de vehículos restantes: {total_vehicles}")
# Mostrar rango de años actual
cursor.execute("SELECT MIN(year), MAX(year) FROM years")
min_year, max_year = cursor.fetchone()
print(f"Rango de años actual: {min_year} - {max_year}")
except Exception as e:
print(f"Error al eliminar vehículos antiguos: {e}")
conn.rollback()
finally:
conn.close()
if __name__ == "__main__":
remove_old_vehicles()