Ошибка в применении своей миграции

Рейтинг: 0Ответов: 1Опубликовано: 23.02.2023

Создал свою миграцию. Там делаю открытие файла и заполняю бд.

Но выдает такую ошибку

django.db.transaction.TransactionManagementError: 
An error occurred in the current transaction. 
You can't execute queries until the end of the 'atomic' block.

Если закомментировать бОльшую часть кода (в основном работа с открытыми файлами), то все проходит нормально. Что это за атомарный блок и как с ним справиться?

Ответы

▲ 1

Скорее всего проблема в обработке исключений https://docs.djangoproject.com/en/4.0/topics/db/transactions/#controlling-transactions-explicitly

Avoid catching exceptions inside atomic!

When exiting an atomic block, Django looks at whether it’s exited normally or with an exception to determine whether to commit or roll back. If you catch and handle exceptions inside an atomic block, you may hide from Django the fact that a problem has happened. This can result in unexpected behavior.