ORM-Ausnahmen

SQLAlchemy ORM-Ausnahmen.

Objektname Beschreibung

ConcurrentModificationError

Alias von StaleDataError

NO_STATE

Ausnahmetypen, die von Instrumentierungsimplementierungen ausgelöst werden können.

Attribut sqlalchemy.orm.exc..sqlalchemy.orm.exc.ConcurrentModificationError

Alias von StaleDataError

Ausnahme sqlalchemy.orm.exc.DetachedInstanceError

Ein Versuch, nicht geladene Attribute eines abgetrennten gemappten Objekts abzurufen.

Ausnahme sqlalchemy.orm.exc.FlushError

Eine ungültige Bedingung wurde während flush() erkannt.

Ausnahme sqlalchemy.orm.exc.LoaderStrategyException

Eine Laderstrategie für ein Attribut existiert nicht.

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

Ausnahmetypen, die von Instrumentierungsimplementierungen ausgelöst werden können.

Ausnahme sqlalchemy.orm.exc.ObjectDeletedError

Ein Refresh-Vorgang konnte die Datenbankzeile für die bekannte Primärschlüssel-Identität eines Objekts nicht abrufen.

Ein Refresh-Vorgang wird ausgelöst, wenn auf ein abgelaufenes Attribut eines Objekts zugegriffen wird oder wenn Query.get() verwendet wird, um ein Objekt abzurufen, das beim Abruf als abgelaufen erkannt wird. Ein SELECT wird für die Zielzeile basierend auf dem Primärschlüssel ausgegeben; wenn keine Zeile zurückgegeben wird, wird diese Ausnahme ausgelöst.

Die wahre Bedeutung dieser Ausnahme ist einfach, dass keine Zeile für die Primärschlüssel-Identität eines persistenten Objekts existiert. Die Zeile könnte gelöscht worden sein, oder in einigen Fällen wurde der Primärschlüssel auf einen neuen Wert aktualisiert, außerhalb der Verwaltung des Zielobjekts durch das ORM.

Methode sqlalchemy.orm.exc.ObjectDeletedError.__init__(state: InstanceState[Any], msg: str | None = None)
Ausnahme sqlalchemy.orm.exc.ObjectDereferencedError

Ein Vorgang kann aufgrund der Garbage Collection eines Objekts nicht abgeschlossen werden.

Ausnahme sqlalchemy.orm.exc.StaleDataError

Ein Vorgang stieß auf Datenbankzustände, die nicht erfasst wurden.

Bedingungen, die dies verursachen können, sind

  • Ein Flush hat möglicherweise versucht, Zeilen zu aktualisieren oder zu löschen, und eine unerwartete Anzahl von Zeilen wurde während der UPDATE- oder DELETE-Anweisung abgeglichen. Beachten Sie, dass beim Verwenden von version_id_col Zeilen in UPDATE- oder DELETE-Anweisungen auch gegen den aktuellen bekannten Versionsidentifikator abgeglichen werden.

  • Ein gemapptes Objekt mit version_id_col wurde aktualisiert, und die Versionsnummer, die aus der Datenbank zurückgegeben wird, stimmt nicht mit der des Objekts selbst überein.

  • Ein Objekt ist von seinem Elternobjekt getrennt, jedoch war das Objekt zuvor an eine andere Elternidentität angehängt, die garbage collected wurde, und es kann keine Entscheidung getroffen werden, ob das neue Elternobjekt wirklich das aktuellste "Elternobjekt" war.

Ausnahme sqlalchemy.orm.exc.UnmappedClassError

Eine Mappierungsoperation wurde für eine unbekannte Klasse angefordert.

Methode sqlalchemy.orm.exc.UnmappedClassError.__init__(cls: Type[_T], msg: str | None = None)
Ausnahme sqlalchemy.orm.exc.UnmappedColumnError

Mappierungsoperation wurde für eine unbekannte Spalte angefordert.

Ausnahme sqlalchemy.orm.exc.UnmappedError

Basis für Ausnahmen, die erwartete, aber nicht vorhandene Mappings betreffen.

Ausnahme sqlalchemy.orm.exc.UnmappedInstanceError

Eine Mappierungsoperation wurde für eine unbekannte Instanz angefordert.

Methode sqlalchemy.orm.exc.UnmappedInstanceError.__init__(obj: object, msg: str | None = None)