Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Ошибка django.db.utils.IntegrityError. Как поправить? [RSS Feed]

#1 Янв. 21, 2014 15:38:07

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Ошибка django.db.utils.IntegrityError. Как поправить?

БД - 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')

Записи модели Author создаются нормально, исключение выскакивает при вызове bulk_create:
django.db.utils.IntegrityError: ������������:  INSERT ������ UPDATE �� �������������� "app_main_book" ���������������� ���������������������� ���������������� ���������� "author_id_refs_id_a6160087" 
DETAIL:  �������� (author_id)=(106570) ���������������������� �� �������������� "app_main_author".

Заметил, что в БД записи создаются не с нулевого id(если перед созданием чистить таблички). Как это перенастроить\почистить не знаю пока, в БД не проф… Наверно это с этим связано, хотя на БД - Mysql функция отрабатывает нормально.

Если надо код моделей посмотреть, выложу…

Офлайн

#2 Янв. 24, 2014 16:16:55

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Ошибка django.db.utils.IntegrityError. Как поправить?

глянь что в логе постгреса (то что ты запостил, только в чиатемом виде)

Офлайн

#3 Янв. 24, 2014 16:28:53

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Ошибка django.db.utils.IntegrityError. Как поправить?

Я, к сожалению не настраивал логирование в БД, ибо неглубоки мои знания.
Проблему решил, причина была в том, что копилась последовательность для автополя.
Просто перед созданием новых записей в БД сбрасываю последовательность(manage.py sqlsequencereset).

Офлайн

  • Начало
  • » Django
  • » Ошибка django.db.utils.IntegrityError. Как поправить?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version