Массовое обновление записей с помощью базы данных peewee FlaskDb

#peewee

Вопрос:

Я хочу обновлять сотни (или даже тысячи) записей одновременно с помощью Peewee FlaskDb (который находится на фабрике приложений).

Ссылаясь на документацию Peewee, я bulk_update хорошо работаю (и это очень быстро по сравнению с другими методами), но это не удается при использовании пакетов.

Например, Ticket.bulk_update(selected_tickets, fields=[Ticket.customer]) отлично работает, но когда я использую следующий код для пакетного обновления, я получаю следующую ошибку.

код

 with db.atomic():  Ticket.bulk_update(selected_tickets, fields=[Ticket.customer], batch=50)  

ошибка

 AttributeError: 'FlaskDB' object has no attribute 'atomic'  

Каков рекомендуемый способ массового обновления записей с помощью FlaskDB? Поддерживает ли FlaskDB atomic?

Ответ №1:

Вы пытаетесь получить доступ к чибису.Методы базы данных в классе оболочки FlaskDB. Этих методов не существует, вам нужно обратиться к базовой базе данных Peewee:

 # Here we assume db is a FlaskDB() instance: peewee_db = db.database  with peewee_db.atomic():  ...