mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-06 08:56:51 -04:00
Note for history methods that history is reset per-flush.
Change-Id: I9bc4d0ddfa93f13e6717b89fa9934f1b8052147f
(cherry picked from commit 833583458c)
This commit is contained in:
@@ -1397,6 +1397,17 @@ def get_history(obj, key, passive=PASSIVE_OFF):
|
||||
"""Return a :class:`.History` record for the given object
|
||||
and attribute key.
|
||||
|
||||
This is the **pre-flush** history for a given attribute, which is
|
||||
reset each time the :class:`.Session` flushes changes to the
|
||||
current database transaction.
|
||||
|
||||
.. note::
|
||||
|
||||
Prefer to use the :attr:`.AttributeState.history` and
|
||||
:meth:`.AttributeState.load_history` accessors to retrieve the
|
||||
:class:`.History` for instance attributes.
|
||||
|
||||
|
||||
:param obj: an object whose class is instrumented by the
|
||||
attributes package.
|
||||
|
||||
@@ -1408,6 +1419,13 @@ def get_history(obj, key, passive=PASSIVE_OFF):
|
||||
:attr:`.PASSIVE_OFF` indicating all necessary SQL
|
||||
should be emitted.
|
||||
|
||||
.. seealso::
|
||||
|
||||
:attr:`.AttributeState.history`
|
||||
|
||||
:meth:`.AttributeState.load_history` - retrieve history
|
||||
using loader callables if the value is not locally present.
|
||||
|
||||
"""
|
||||
if passive is True:
|
||||
util.warn_deprecated("Passing True for 'passive' is deprecated. "
|
||||
|
||||
@@ -666,12 +666,21 @@ class AttributeState(object):
|
||||
|
||||
@property
|
||||
def history(self):
|
||||
"""Return the current pre-flush change history for
|
||||
"""Return the current **pre-flush** change history for
|
||||
this attribute, via the :class:`.History` interface.
|
||||
|
||||
This method will **not** emit loader callables if the value of the
|
||||
attribute is unloaded.
|
||||
|
||||
.. note::
|
||||
|
||||
The attribute history system tracks changes on a **per flush
|
||||
basis**. Each time the :class:`.Session` is flushed, the history
|
||||
of each attribute is reset to empty. The :class:`.Session` by
|
||||
default autoflushes each time a :class:`.Query` is invoked. For
|
||||
options on how to control this, see :ref:`session_flushing`.
|
||||
|
||||
|
||||
.. seealso::
|
||||
|
||||
:meth:`.AttributeState.load_history` - retrieve history
|
||||
@@ -684,12 +693,20 @@ class AttributeState(object):
|
||||
PASSIVE_NO_INITIALIZE)
|
||||
|
||||
def load_history(self):
|
||||
"""Return the current pre-flush change history for
|
||||
"""Return the current **pre-flush** change history for
|
||||
this attribute, via the :class:`.History` interface.
|
||||
|
||||
This method **will** emit loader callables if the value of the
|
||||
attribute is unloaded.
|
||||
|
||||
.. note::
|
||||
|
||||
The attribute history system tracks changes on a **per flush
|
||||
basis**. Each time the :class:`.Session` is flushed, the history
|
||||
of each attribute is reset to empty. The :class:`.Session` by
|
||||
default autoflushes each time a :class:`.Query` is invoked. For
|
||||
options on how to control this, see :ref:`session_flushing`.
|
||||
|
||||
.. seealso::
|
||||
|
||||
:attr:`.AttributeState.history`
|
||||
|
||||
Reference in New Issue
Block a user