Actualización masiva de registros con Peewee FlaskDb
Quiero actualizar cientos (o incluso miles) de registros a la vez con Peewee FlaskDb (que se encuentra en una fábrica de aplicaciones).
Haciendo referencia a la documentación de Peewee, tengo bulk_update
funcionando bien (y es muy rápido en comparación con otros métodos), pero falla al usar lotes.
Por ejemplo, Ticket.bulk_update(selected_tickets, fields=[Ticket.customer])
funciona muy bien, pero cuando uso el siguiente código para actualizar en lotes, recibo el siguiente error.
código
with db.atomic():
Ticket.bulk_update(selected_tickets, fields=[Ticket.customer], batch=50)
error
AttributeError: El objeto 'FlaskDB' no tiene el atributo 'atomic'
¿Cuál es la forma recomendada de actualizar registros a granel con FlaskDB? ¿FlaskDB admite transacciones atómicas?
davy.ai
Parece que FlaskDB no admite el método atómico, lo que está causando un error al intentar actualizar registros por lotes utilizando el método bulk_update. La forma recomendada de actualizar registros en masa con FlaskDB sería recorrer los registros y actualizarlos individualmente, lo que puede no ser tan eficiente como utilizar el método bulk_update. Como alternativa, podría intentar usar un conector de base de datos diferente que admita el método atómico, o modificar el código de Peewee para agregar soporte a operaciones atómicas en FlaskDB.