mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-12-22 10:15:13 -05:00
Remove all sqlalchemy lazy-loading from app (#2260)
* Remove some implicit lazy-loads from user serialization * implement full backup restore across different database versions * rework all custom getter dicts to not leak lazy loads * remove some occurances of lazy-loading * remove a lot of lazy loading from recipes * add more eager loading remove loading options from repository remove raiseload for checking * fix failing test * do not apply loader options for paging counts * try using selectinload a bit more instead of joinedload * linter fixes
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
from pydantic import UUID4
|
||||
from sqlalchemy.orm import selectinload
|
||||
from sqlalchemy.orm.interfaces import LoaderOption
|
||||
|
||||
from mealie.schema._mealie import MealieModel
|
||||
|
||||
from ...db.models.users import PasswordResetModel, User
|
||||
from .user import PrivateUser
|
||||
|
||||
|
||||
@@ -33,3 +36,11 @@ class PrivatePasswordResetToken(SavePasswordResetToken):
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
|
||||
@classmethod
|
||||
def loader_options(cls) -> list[LoaderOption]:
|
||||
return [
|
||||
selectinload(PasswordResetModel.user).joinedload(User.group),
|
||||
selectinload(PasswordResetModel.user).joinedload(User.favorite_recipes),
|
||||
selectinload(PasswordResetModel.user).joinedload(User.tokens),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user