Prevent lazy loading of SQLAlchemy relationships. #960
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is somewhat complex area so I added a few comments in key places, hopefully it clarifies it.
The gist is that we have "boundary", things that are eagerly loaded and things that aren't. That boundary is set/reset in 3 places: when creating a project, when loading a project and when a
StateManager.commit()
is done. The goal of this diff is to ensure that the set of eagerly loaded models is always the same regardless of how we get to a certain state, so the rest of the app doesn't have to do any awaiting/lazy loading, and can rely that the models will be in place.