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

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

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

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

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


Ответы (1 шт):

Автор решения: Andrey Maslov

Скорее всего проблема в обработке исключений 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.

→ Ссылка