melodix-api / migrate_images.py
GitHub Action
deploy from github actions
440bac0
Raw
History Blame Contribute Delete
1.99 kB
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()