Как использовать команду 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