Try как я мог, я не могу показаться, чтобы правильно уловить SQLAlchemy IntegrityError:не может поймать SQLAlchemy IntegrityError
from sqlalchemy import exc
try:
insert_record()
except exc.IntegrityError, exc:
print exC# this is never called
handle_elegantly() # this is never called
Как то, что можно было бы ожидать:
IntegrityError: (IntegrityError) insert or update on table "my_table"
violates foreign key constraint "my_table_some_column_fkey"
Я попытался явно :
from sqlalchemy.exc import IntegrityError
UPDATE:
я нашел то, что, кажется, подходит то, что здесь, где целостность ошибки не выдается, пока сеанс не смывается в БД происходит, и после того, как try
/except
блоки были выполнены: Trying to catch integrity error with SQLAlchemy
Однако добавление session.flush()
в try
блоке дает InvalidRequestError
:
ERROR:root:This Session's transaction has been rolled back due to a previous
exception during flush. To begin a new transaction with this Session,
first issue Session.rollback().
Original exception was: (IntegrityError)
ли вы на 100% это, где это происходит? –
Какую базу данных вы используете? – alecxe
Кроме того, меняется ли 'IntegrityError' на' DatabaseError'? Благодарю. – alecxe