У меня есть потоковое приложение на Python + Postgres. Я использую ORM Джанго
сохранить в Postgres ..
У меня есть одновременные вызовы сохранения. Иногда 2 темы сохраняются с
тот же первичный ключ, который приводит к проблеме.
Журнал Postgres:
ОШИБКА: двойное значение ключа нарушает уникальное ограничение "store_pkey"
ЗАЯВЛЕНИЕ: INSERT INTO "store" ("store_id", "address") ЗНАЧЕНИЯ
(E'HAN277 ', E'101 Ocean Street')
Код:
В коде я вижу IntegrityError. Я пробовал разные способы справиться
этот.
а.
попробовать:
a.save ()
кроме IntegrityError:
пропуск
Это вызывает InternalError
б. Пытался сделать откат транзакции .. но не уверен .. Насколько я
понимаю, что вам нужно различать вызовы сохранения, чтобы иметь транзакции
sid = transaction.savepoint()
try:
row.save()
except IntegrityError, e:
transaction.savepoint_rollback(sid)
pass
transaction.commit()
Первая точка сохранения завершается с ошибкой
AttributeError: объект 'NoneType' не имеет атрибута 'cursor'
а. Я читал где-то Django не является 100% потокобезопасным. Это хорошо
выбор в моем случае. Я уже использовал Django для другого приложения
и нужна ORM .. Поэтому, естественно, я выбрал Django
б. Как справиться с этой ситуацией .. Любые комментарии.
Спасибо и всего наилучшего,
Рамя