Spaces:
Running
Running
| 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() | |