SQLAlchemy, OnUpdate & Datetime UTCNOW deprecation in 3.12
This is a quick post about migrating your utcnow()
to now(tz=UTC)
in SQLAlchemy for your onupdate
function argument to your SQL Models.
A World Without utcnow
With datetime.utcnow
being deprecated you might see this pattern in your
project's code if you are using SQLAlchemy
: =
However, you might be wondering how to pass the new recommended
datetime.now(tz=UTC)
to the function above, as invoking datetime.now()
will
cause all the timestamps to be the time when the server or lambda started, not
when the function for updated is actually called. (It's effectively hard-coding
a single time stamp that will never change). The answer is functools.partial
where you can pass functions with_arguments to another function as an
argument. So the above snippet will become:
: =
The end.