使用 peewee FlaskDb 批量更新记录
Bulk updating records with peewee FlaskDb
我想使用 Peewee FlaskDb(位于 App Factory 中)一次更新数百(甚至数千)条记录。
参考 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 是否支持原子?
您正在尝试访问 FlaskDB 包装器 class 上的 peewee.Database 方法。那些方法不存在,需要参考Peewee底层数据库:
# Here we assume db is a FlaskDB() instance:
peewee_db = db.database
with peewee_db.atomic():
...
我想使用 Peewee FlaskDb(位于 App Factory 中)一次更新数百(甚至数千)条记录。
参考 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 是否支持原子?
您正在尝试访问 FlaskDB 包装器 class 上的 peewee.Database 方法。那些方法不存在,需要参考Peewee底层数据库:
# Here we assume db is a FlaskDB() instance:
peewee_db = db.database
with peewee_db.atomic():
...