Я использую метод bulk_create
из Django для одновременного создания нескольких записей.
Чтобы гарантировать, что изменения будут зафиксированы только в том случае, если нет исключения I ' Я думаю о добавлении transaction.atomic()
к блокам кода, но я не уверен, нужно ли мне его добавлять.
Насколько я понимаю, мне нужно добавить его только в Сценарий 2 , потому что в этом случае я выполняю более одного запроса.
Сценарий 1
Создание 1000 записей в одном запросе
Entry.objects.bulk_create([
Entry(headline='This is a test'),
Entry(headline='This is only a test'),
# ...
])
Сценарий 2
Создание 10.000 записей в партиях по 1.000
Entry.objects.bulk_create([
Entry(headline='This is a test'),
Entry(headline='This is only a test'),
# ...
], batch_size=1_000)