Release: 1.2.0b3 pre release | Release Date: October 13, 2017

SQLAlchemy 1.2 Documentation

ORM Exceptions

SQLAlchemy ORM exceptions.


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.MultipleResultsFound

A single database result was required but more than one were found.

sqlalchemy.orm.exc.NO_STATE = (<type 'exceptions.AttributeError'>, <type 'exceptions.KeyError'>)

Exception types that may be raised by instrumentation implementations.

exception sqlalchemy.orm.exc.NoResultFound

A database result was required but none was found.

exception sqlalchemy.orm.exc.ObjectDeletedError(state, msg=None)

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.

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”.

    New in version 0.7.4.

exception sqlalchemy.orm.exc.UnmappedClassError(cls, msg=None)

An mapping operation was requested for an unknown class.

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(obj, msg=None)

An mapping operation was requested for an unknown instance.

Previous: ORM Internals Next: Deprecated ORM Event Interfaces