ORM Exceptions — SQLAlchemy 2.0 Documentation

Release: 2.0.0b3 | Release Date: November 4, 2022

# SQLAlchemy 2.0 Documentation

# ORM Exceptions

SQLAlchemy ORM exceptions.

Object Name | Description
--- | ---
ConcurrentModificationError | alias of `StaleDataError`
NO_STATE | Exception types that may be raised by instrumentation implementations.

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

  alias of `StaleDataError`

exception sqlalchemy.orm.exc.DetachedInstanceError

  An attempt to access unloaded attributes on a mapped instance that is detached.

exception sqlalchemy.orm.exc.FlushError

  A invalid condition was detected during flush().

exception sqlalchemy.orm.exc.LoaderStrategyException

  A loader strategy for an attribute does not exist.

  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 types that may be raised by instrumentation implementations.

exception sqlalchemy.orm.exc.ObjectDeletedError

  A refresh operation failed to retrieve the database row corresponding to an object’s known primary key identity.

  A refresh operation proceeds when an expired attribute is accessed on an object, or when `Query.get()` is used to retrieve an object which is, upon retrieval, detected as expired. A SELECT is emitted for the target row based on primary key; if no row is returned, this exception is raised.

  The true meaning of this exception is simply that no row exists for the primary key identifier associated with a persistent object. The row may have been deleted, or in some cases the primary key updated to a new value, outside of the ORM’s management of the target object.

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

exception sqlalchemy.orm.exc.ObjectDereferencedError

  An operation cannot complete due to an object being garbage collected.

exception sqlalchemy.orm.exc.StaleDataError

  An operation encountered database state that is unaccounted for.

  Conditions which cause this to happen include:

  - A flush may have attempted to update or delete rows and an unexpected number of rows were matched during the UPDATE or DELETE statement. Note that when version_id_col is used, rows in UPDATE or DELETE statements are also matched against the current known version identifier.

  - A mapped object with version_id_col was refreshed, and the version number coming back from the database does not match that of the object itself.

  - A object is detached from its parent object, however the object was previously attached to a different parent identity which was garbage collected, and a decision cannot be made if the new parent was really the most recent “parent”.

exception sqlalchemy.orm.exc.UnmappedClassError

  An mapping operation was requested for an unknown class.

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

exception sqlalchemy.orm.exc.UnmappedColumnError

  Mapping operation was requested on an unknown column.

exception sqlalchemy.orm.exc.UnmappedError

  Base for exceptions that involve expected mappings not present.

exception sqlalchemy.orm.exc.UnmappedInstanceError

  An mapping operation was requested for an unknown instance.

  method `sqlalchemy.orm.exc.UnmappedInstanceError.` __init__(obj: object, msg: Optional[str] = None)