import logging import os from sqlalchemy.orm import Session from app.database import SessionLocal import app.main # Importar para cargar todos los modelos from app.models.user import User from app.models.iglesia import Iglesia, Miembro from app.utils.imgbb import upload_image_to_imgbb logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def migrate_images(): db: Session = SessionLocal() try: logger.info("Migrando imágenes de Iglesia...") iglesias = db.query(Iglesia).filter(Iglesia.foto_base64 != None).all() for ig in iglesias: if ig.foto_base64 and not ig.foto_base64.startswith("http"): logger.info(f"Subiendo imagen de iglesia ID {ig.id} a ImgBB...") url = upload_image_to_imgbb(ig.foto_base64) if url and url.startswith("http"): ig.foto_base64 = url db.commit() logger.info(f"Iglesia ID {ig.id} actualizada: {url}") else: logger.error(f"Fallo al subir iglesia ID {ig.id}") logger.info("Migrando imágenes de Miembros...") miembros = db.query(Miembro).filter(Miembro.foto_base64 != None).all() for mb in miembros: if mb.foto_base64 and not mb.foto_base64.startswith("http"): logger.info(f"Subiendo imagen de miembro ID {mb.id} a ImgBB...") url = upload_image_to_imgbb(mb.foto_base64) if url and url.startswith("http"): mb.foto_base64 = url db.commit() logger.info(f"Miembro ID {mb.id} actualizado: {url}") else: logger.error(f"Fallo al subir miembro ID {mb.id}") logger.info("Migración completada con éxito.") except Exception as e: logger.error(f"Error durante la migración: {e}") finally: db.close() if __name__ == "__main__": migrate_images()