Исключения ORM

Исключения в SQLAlchemy ORM.

Object Name Description

ConcurrentModificationError

alias of StaleDataError

NO_STATE

Типы исключений, которые могут быть вызваны реализацией инструментария.

attribute sqlalchemy.orm.exc..sqlalchemy.orm.exc.ConcurrentModificationError

alias of StaleDataError

exception sqlalchemy.orm.exc.DetachedInstanceError

Попытка доступа к незагруженным атрибутам сопоставленного экземпляра, который отсоединен.

exception sqlalchemy.orm.exc.FlushError

Во время выполнения функции flush() было обнаружено недопустимое состояние.

exception sqlalchemy.orm.exc.LoaderStrategyException

Стратегия загрузчика для атрибута не существует.

method sqlalchemy.orm.exc.LoaderStrategyException.__init__(applied_to_property_type: Type[Any], requesting_property: MapperProperty[Any], applies_to: Optional[Type[MapperProperty[Any]]], actual_strategy_type: Optional[Type[LoaderStrategy]], strategy_key: Tuple[Any, ...])
sqlalchemy.orm.exc.NO_STATE = (<class 'AttributeError'>, <class 'KeyError'>)

Типы исключений, которые могут быть вызваны реализацией инструментария.

exception sqlalchemy.orm.exc.ObjectDeletedError

Операция обновления не смогла получить строку базы данных, соответствующую известному идентификатору первичного ключа объекта.

Операция обновления выполняется, когда к объекту обращается атрибут с истекшим сроком действия или когда Query.get() используется для получения объекта, который при получении определяется как истекший. Выполняется SELECT для целевого ряда на основе первичного ключа; если ряд не возвращается, возникает исключение.

Истинный смысл этого исключения заключается в том, что для идентификатора первичного ключа, связанного с постоянным объектом, не существует строки. Строка могла быть удалена, или в некоторых случаях первичный ключ был обновлен до нового значения, вне управления ORM целевым объектом.

method sqlalchemy.orm.exc.ObjectDeletedError.__init__(state: InstanceState[Any], msg: Optional[str] = None)
exception sqlalchemy.orm.exc.ObjectDereferencedError

Операция не может завершиться из-за того, что объект находится в процессе сборки мусора.

exception sqlalchemy.orm.exc.StaleDataError

Операция столкнулась с неучтенным состоянием базы данных.

К условиям, которые вызывают это, относятся:

  • Возможно, при попытке обновления или удаления строк в операторе UPDATE или DELETE было сопоставлено непредвиденное количество строк. Обратите внимание, что при использовании version_id_col строки в операторах UPDATE или DELETE также сопоставляются с текущим известным идентификатором версии.

  • Сопоставленный объект с version_id_col был обновлен, и номер версии, полученный из базы данных, не совпадает с номером версии самого объекта.

  • Объект отделяется от своего родительского объекта, однако ранее объект был присоединен к другому родительскому идентификатору, который был собран в мусор, и невозможно решить, действительно ли новый родитель был последним «родителем».

exception sqlalchemy.orm.exc.UnmappedClassError

Была запрошена операция сопоставления для неизвестного класса.

method sqlalchemy.orm.exc.UnmappedClassError.__init__(cls: Type[_T], msg: Optional[str] = None)
exception sqlalchemy.orm.exc.UnmappedColumnError

Была запрошена операция отображения на неизвестный столбец.

exception sqlalchemy.orm.exc.UnmappedError

База для исключений, связанных с отсутствием ожидаемых отображений.

exception sqlalchemy.orm.exc.UnmappedInstanceError

Операция сопоставления была запрошена для неизвестного экземпляра.

method sqlalchemy.orm.exc.UnmappedInstanceError.__init__(obj: object, msg: Optional[str] = None)
Вернуться на верх