mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
For SQLAlchemy to automatically understand updates from the external world, it must use an `autocommit=True` in its session. This change breaks how we were using commit previously, as `autocommit=True` causes SQLAlchemy to commit when a SessionTransaction context hits __exit__. So, a refactoring was required of our tests: All usage of any `db.{create,delete}` must be called **within** a SessionTransaction context, created via new `db.begin()`. From this point forward, we're going to require: ``` with db.begin(): db.create(...) db.delete(...) db.session.delete(object) ``` With this, we now get external DB modifications automatically without reloading or restarting the FastAPI server, which we absolutely need for production. Signed-off-by: Kevin Morris <kevr@0cost.org> |
||
---|---|---|
.. | ||
git | ||
models | ||
packages | ||
routers | ||
scripts | ||
testing | ||
__init__.py | ||
asgi.py | ||
auth.py | ||
cache.py | ||
captcha.py | ||
config.py | ||
db.py | ||
exceptions.py | ||
initdb.py | ||
l10n.py | ||
logging.py | ||
redis.py | ||
schema.py | ||
spawn.py | ||
templates.py | ||
time.py | ||
util.py |