Форум сайта python.su
15
БД - postgres, драйвер - psycopg2.
Пробую заполнить БД записями через метод bulk_create():
def test_bulk_create(db_engine_name): objs_list = [] for i in range(10000): obj = Author(name='author_'+str(i), mail='author_'+str(i)+'@djangomail.de') objs_list.append(obj) Author.objects.using(db_engine_name).bulk_create(objs_list) objs_list.clear() authors = Author.objects.all() for i in range(10000): obj = Book(author=authors[i], title='book_'+str(i), page_count=300, exists=True, chars_count=300000, cost=347.77, sale_cost=244.07) objs_list.append(obj) Book.objects.using(db_engine_name).bulk_create(objs_list) test_bulk_create('postgres')
django.db.utils.IntegrityError: ������������: INSERT ������ UPDATE �� �������������� "app_main_book" ���������������� ���������������������� ���������������� ���������� "author_id_refs_id_a6160087" DETAIL: �������� (author_id)=(106570) ���������������������� �� �������������� "app_main_author".
Офлайн
41
глянь что в логе постгреса (то что ты запостил, только в чиатемом виде)
Офлайн
15
Я, к сожалению не настраивал логирование в БД, ибо неглубоки мои знания.
Проблему решил, причина была в том, что копилась последовательность для автополя.
Просто перед созданием новых записей в БД сбрасываю последовательность(manage.py sqlsequencereset).
Офлайн