from app import create_app from models import db, DatosSolaresCiudad, CatalogoPaneles, Configuracion def seed_database(): app = create_app() with app.app_context(): print("Iniciando poblado de base de datos...") # Opcional: Limpiar tablas existentes si quieres reiniciar de cero db.drop_all() db.create_all() # Configuración if not Configuracion.query.filter_by(clave='precio_kwh').first(): print("Creando configuración por defecto...") default_config = Configuracion(clave='precio_kwh', valor='0.04') db.session.add(default_config) else: print("La configuración ya existe.") # Cities (Ecuador) if not DatosSolaresCiudad.query.first(): print("Creando ciudades...") cities = [ # Sierra DatosSolaresCiudad(nombre_ciudad="Quito", provincia="Pichincha", irradiacion_h_promedio=5.1), DatosSolaresCiudad(nombre_ciudad="Cuenca", provincia="Azuay", irradiacion_h_promedio=4.8), DatosSolaresCiudad(nombre_ciudad="Loja", provincia="Loja", irradiacion_h_promedio=5.0), DatosSolaresCiudad(nombre_ciudad="Ambato", provincia="Tungurahua", irradiacion_h_promedio=4.7), DatosSolaresCiudad(nombre_ciudad="Ibarra", provincia="Imbabura", irradiacion_h_promedio=4.9), DatosSolaresCiudad(nombre_ciudad="Riobamba", provincia="Chimborazo", irradiacion_h_promedio=5.2), DatosSolaresCiudad(nombre_ciudad="Tulcán", provincia="Carchi", irradiacion_h_promedio=4.8), DatosSolaresCiudad(nombre_ciudad="Latacunga", provincia="Cotopaxi", irradiacion_h_promedio=5.2), DatosSolaresCiudad(nombre_ciudad="Guaranda", provincia="Bolívar", irradiacion_h_promedio=4.9), DatosSolaresCiudad(nombre_ciudad="Azogues", provincia="Cañar", irradiacion_h_promedio=4.8), # Costa DatosSolaresCiudad(nombre_ciudad="Guayaquil", provincia="Guayas", irradiacion_h_promedio=4.6), DatosSolaresCiudad(nombre_ciudad="Manta", provincia="Manabí", irradiacion_h_promedio=5.3), DatosSolaresCiudad(nombre_ciudad="Portoviejo", provincia="Manabí", irradiacion_h_promedio=5.0), DatosSolaresCiudad(nombre_ciudad="Esmeraldas", provincia="Esmeraldas", irradiacion_h_promedio=4.5), DatosSolaresCiudad(nombre_ciudad="Babahoyo", provincia="Los Ríos", irradiacion_h_promedio=4.4), DatosSolaresCiudad(nombre_ciudad="Machala", provincia="El Oro", irradiacion_h_promedio=4.7), DatosSolaresCiudad(nombre_ciudad="Santa Elena", provincia="Santa Elena", irradiacion_h_promedio=5.5), DatosSolaresCiudad(nombre_ciudad="Santo Domingo", provincia="Santo Domingo de los Tsáchilas", irradiacion_h_promedio=4.2), # Oriente (Amazonía) DatosSolaresCiudad(nombre_ciudad="Nueva Loja", provincia="Sucumbíos", irradiacion_h_promedio=4.0), DatosSolaresCiudad(nombre_ciudad="Puerto Francisco de Orellana", provincia="Orellana", irradiacion_h_promedio=4.1), DatosSolaresCiudad(nombre_ciudad="Tena", provincia="Napo", irradiacion_h_promedio=3.8), DatosSolaresCiudad(nombre_ciudad="Puyo", provincia="Pastaza", irradiacion_h_promedio=3.9), DatosSolaresCiudad(nombre_ciudad="Macas", provincia="Morona Santiago", irradiacion_h_promedio=4.0), DatosSolaresCiudad(nombre_ciudad="Zamora", provincia="Zamora Chinchipe", irradiacion_h_promedio=4.1), # Insular DatosSolaresCiudad(nombre_ciudad="Puerto Ayora", provincia="Galápagos", irradiacion_h_promedio=5.8), DatosSolaresCiudad(nombre_ciudad="Puerto Baquerizo Moreno", provincia="Galápagos", irradiacion_h_promedio=5.7) ] db.session.add_all(cities) else: print("Las ciudades ya existen.") # Panels if not CatalogoPaneles.query.first(): print("Creando paneles...") panels = [ CatalogoPaneles(marca="SunPower", modelo="Maxeon 3", eficiencia_r=0.22, area_m2=1.6, precio_unitario=350), CatalogoPaneles(marca="Canadian Solar", modelo="HiKu", eficiencia_r=0.18, area_m2=1.7, precio_unitario=220), CatalogoPaneles(marca="Jinko", modelo="Tiger Pro", eficiencia_r=0.20, area_m2=1.65, precio_unitario=250) ] db.session.add_all(panels) else: print("Los paneles ya existen.") db.session.commit() print("¡Base de datos poblada con éxito!") if __name__ == '__main__': seed_database()