• Kevin Morris's avatar
    [FastAPI] Refactor db modifications · a5943bf2
    Kevin Morris authored
    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():
    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's avatarKevin Morris <kevr@0cost.org>