Итак, я пытаюсь сгенерировать много данных для проверки своей базы данных, и я использую следующий оператор для генерации списков элементов:
for __ in range(0, 1000):
list_cache = []
for __ in range(0, 10000):
list_cache.append(ItemList())
ItemList.objects.bulk_create(list_cache, ignore_conflicts=True)
Когда я пытаюсь выполнить код, появляется ошибка django.db.utils.OperationalError: too many terms in compound SELECT
вверх. Это происходит из последней строки примера кода.
Я обнаружил, что когда я перемещаю list_cache
за пределы обоих для циклов и вызываю bulk_create
только один раз, он работает нормально (код ниже). Но так как я не хочу, чтобы в одном утверждении был миллион записей, я разделил его, как вы можете видеть выше.
list_cache = []
for __ in range(0, 1000):
for __ in range(0, 10000):
list_cache.append(ItemList())
ItemList.objects.bulk_create(list_cache, ignore_conflicts=True)