SQLAlchemy 2.0 обработка исключений

Рейтинг: 0Ответов: 0Опубликовано: 21.07.2023

Всем привет. В версии алхимии 1.4 я делал запись в БД примерно таким образом

 from sqlalchemy.orm import sessionmaker, exc
        session = Session()
                session.add(add_sale)
                try:
                    session.commit()
                except exc.sa_exc.SQLAlchemyError as e:
                    error = str(e.__dict__['orig'])
                    session.rollback()
                    logger.error('Ошибка при сохранении в БД: %s' % error)
                finally:
                    session.close()

Сейчас переписываю проект на алхимию 2.0. В ней рекомендуется использовать менеджер контекста, и использовать with

with Session() as session:
  session.add(user)
  session.commit()

Так же можно использовать Session.begin(), с двумя контекстами

with Session(engine) as session, session.begin():
    session.add(some_object)
    session.add(some_other_object)

Подскажите, пожалуйста, стоит ли озадачиваться отлавливанием exception или успокоиться и использовать менеджер контекста с with?

Ответы

Ответов пока нет.