Как использовать команду upsert в django для массового обновления?

Мне нужно обновить 1000 строк с разными значениями в временной шкале базы данных.

Я нашел объемное обновление, чтобы сделать это.

list = ModelClass.objects.filter(name = 'bar')
obj_to_be_update = []
for obj in list:
    obj.name = "Dear "+obj.name
    obj_to_be_update.append(obj)
ModelClass.objects.bulk_update(obj_to_be_update, ['name'], batch_size=1000)

Это занимает много времени для обновления, и даже атомарная транзакция занимает много времени для обновления в базе данных.

Вместо этого нашел upsert для timescale db, который выполняется быстрее. Есть идеи, как это сделать в django.

https://docs.timescale.com/timescaledb/latest/how-to-guides/write-data/upsert/#upsert-functionality
Вернуться на верх