LINUX.ORG.RU

История изменений

Исправление scientistpython, (текущая версия) :

на практике, в контекстном менеджере вот так перехватывает

from sqlalchemy.exc import IntegrityError

def sessionScope():
    try:
        session = Session(bind=engine)
        yield session
        session.commit()
    except IntegrityError:
        print('pass duplicate')
        session.rollback()
    except:
        session.rollback()
        raise

def insert(myTable: MyTable) -> None:
    with sessionScope() as session:
        session.add(myTable)

Исходная версия scientistpython, :

на практике, в контекстном менеджере перехватывает

from sqlalchemy.exc import IntegrityError

def sessionScope():
    try:
        session = Session(bind=engine)
        yield session
        session.commit()
    except IntegrityError:
        print('pass duplicate')
        session.rollback()
    except:
        session.rollback()
        raise

def insert(myTable: MyTable) -> None:
    with sessionScope() as session:
        session.add(myTable)