feat: implement backup restoration from old db schemas (#2213)

* Remove some implicit lazy-loads from user serialization

* implement full backup restore across different database versions
This commit is contained in:
Sören
2023-03-12 21:39:51 +01:00
committed by GitHub
parent 3118b0e423
commit ccb0b43cef
5 changed files with 71 additions and 90 deletions

View File

@@ -78,14 +78,19 @@ class UserBase(MealieModel):
can_organize: bool = False
class Config:
orm_mode = True
class _UserGetter(GetterDict):
def get(self, key: Any, default: Any = None) -> Any:
# Transform extras into key-value dict
if key == "group":
value = super().get(key, default)
return value.group.name
@classmethod
def getter_dict(cls, name_orm: User):
return {
**GetterDict(name_orm),
"group": name_orm.group.name,
}
# Keep all other fields as they are
else:
return super().get(key, default)
orm_mode = True
getter_dict = _UserGetter
schema_extra = {
"example": {