嘗試,因爲我可能,我似乎無法正確地捕捉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