Tracking Modifications¶
Warning
Tracking changes adds significant overhead. In most cases, you’ll be better served by using SQLAlchemy events directly.
Flask-SQLAlchemy can set up its session to track inserts, updates, and deletes for
models, then send a Blinker signal with a list of these changes either before or during
calls to session.flush()
and session.commit()
.
To enable this feature, set SQLALCHEMY_TRACK_MODIFICATIONS
in the Flask app
config. Then add a listener to models_committed
(emitted after the commit) or
before_models_committed
(emitted before the commit).
from flask_sqlalchemy.track_modifications import models_committed
def get_modifications(sender: Flask, changes: list[tuple[t.Any, str]]) -> None:
...
models_committed.connect(get_modifications)