ddc4129a6d
We currently see a lot of warnings like this from
the soft_delete() method:
sqlalchemy.exc.SAWarning: Evaluating non-mapped column expression
'updated_at' onto ORM instances; this is a deprecated use case.
Please make use of the actual mapped columns in ORM-evaluated
UPDATE / DELETE expressions.
This is because the "evaluate" synchronization strategy would like
to search for objects and update them based on the UPDATE criteria
passed, however the columns given, literal_column('id'),
literal_column('updated_at'), are not mapped to anything. The
evaluator has to make a guess that the string contained in these
expressions should be matched to a mapped attribute on the given
entity and this guess was first removed in [1], then added back in
[2] with a warning (likely since oslo.db is invoking it).
This uses the actual entity-mapped column for the query rather
than the literal string column.
[1] https://docs.sqlalchemy.org/en/latest/changelog/changelog_12.html#change-b1e620dece39006ab44c47044e9a6fee
[2] https://docs.sqlalchemy.org/en/latest/changelog/changelog_12.html#change-dff3a469788c81a46440584406cb22be
Change-Id: I192e84ce757d12d33085a209dd58d8ea46fb90fb
Closes-Bug: #1814199
(cherry picked from commit
|
||
---|---|---|
.. | ||
locale | ||
sqlalchemy | ||
tests | ||
__init__.py | ||
_i18n.py | ||
api.py | ||
concurrency.py | ||
exception.py | ||
options.py |