Per quanto mi sforzassi, non posso non sembrano prendere lo sqlalchemy IntegrityError correttamente:non può prendere 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
Come quello che ci si potrebbe aspettare:
IntegrityError: (IntegrityError) insert or update on table "my_table"
violates foreign key constraint "my_table_some_column_fkey"
Ho cercato di esplicito :
from sqlalchemy.exc import IntegrityError
UPDATE:
ho trovato qualcosa che sembra adattarsi cosa sta succedendo qui, dove l'integrità errore non è gettato fino a quando la sessione viene svuotata al db, e dopo sono stati eseguiti i try
/except
blocchi: Trying to catch integrity error with SQLAlchemy
Tuttavia, l'aggiunta di session.flush()
nel blocco try
produce un 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)
Are sei al 100% dove sta succedendo? –
Quale database stai usando? – alecxe
Inoltre, si modifica l'errore 'IntegrityError' con' DatabaseError'? Grazie. – alecxe