mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-09 03:04:54 -04:00
fix restore from backup
This commit is contained in:
parent
234db39cc7
commit
04ebc07333
@ -1,6 +1,7 @@
|
|||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
import sqlalchemy.orm as orm
|
import sqlalchemy.orm as orm
|
||||||
from mealie.core import root_logger
|
from mealie.core import root_logger
|
||||||
|
from mealie.db.db_setup import SessionLocal
|
||||||
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
|
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
|
||||||
from slugify import slugify
|
from slugify import slugify
|
||||||
from sqlalchemy.orm import validates
|
from sqlalchemy.orm import validates
|
||||||
@ -56,12 +57,13 @@ class Category(SqlAlchemyBase, BaseMixins):
|
|||||||
self.slug = slugify(name)
|
self.slug = slugify(name)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def create_if_not_exist(session, name: str = None):
|
def create_if_not_exist(name: str = None):
|
||||||
test_slug = slugify(name)
|
test_slug = slugify(name)
|
||||||
result = session.query(Category).filter(Category.slug == test_slug).one_or_none()
|
with SessionLocal() as session:
|
||||||
if result:
|
result = session.query(Category).filter(Category.slug == test_slug).one_or_none()
|
||||||
logger.debug("Category exists, associating recipe")
|
if result:
|
||||||
return result
|
logger.debug("Category exists, associating recipe")
|
||||||
else:
|
return result
|
||||||
logger.debug("Category doesn't exists, creating tag")
|
else:
|
||||||
return Category(name=name)
|
logger.debug("Category doesn't exists, creating tag")
|
||||||
|
return Category(name=name)
|
||||||
|
@ -126,11 +126,11 @@ class RecipeModel(SqlAlchemyBase, BaseMixins):
|
|||||||
self.perform_time = perform_time
|
self.perform_time = perform_time
|
||||||
self.cook_time = cook_time
|
self.cook_time = cook_time
|
||||||
|
|
||||||
self.recipe_category = [x for x in [Category.get_ref(cat) for cat in recipe_category] if x]
|
self.recipe_category = [x for x in [Category.create_if_not_exist(cat) for cat in recipe_category] if x]
|
||||||
|
|
||||||
# Mealie Specific
|
# Mealie Specific
|
||||||
self.settings = RecipeSettings(**settings) if settings else RecipeSettings()
|
self.settings = RecipeSettings(**settings) if settings else RecipeSettings()
|
||||||
self.tags = [x for x in [Tag.get_ref(tag) for tag in tags] if x]
|
self.tags = [Tag.create_if_not_exist(tag) for tag in tags]
|
||||||
self.slug = slug
|
self.slug = slug
|
||||||
self.notes = [Note(**note) for note in notes]
|
self.notes = [Note(**note) for note in notes]
|
||||||
self.rating = rating
|
self.rating = rating
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
import sqlalchemy.orm as orm
|
import sqlalchemy.orm as orm
|
||||||
from mealie.core import root_logger
|
from mealie.core import root_logger
|
||||||
|
from mealie.db.db_setup import SessionLocal
|
||||||
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
|
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
|
||||||
from slugify import slugify
|
from slugify import slugify
|
||||||
from sqlalchemy.orm import validates
|
from sqlalchemy.orm import validates
|
||||||
@ -35,13 +36,14 @@ class Tag(SqlAlchemyBase, BaseMixins):
|
|||||||
self.slug = slugify(self.name)
|
self.slug = slugify(self.name)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def create_if_not_exist(session, name: str = None):
|
def create_if_not_exist(name: str = None):
|
||||||
test_slug = slugify(name)
|
test_slug = slugify(name)
|
||||||
result = session.query(Tag).filter(Tag.slug == test_slug).one_or_none()
|
with SessionLocal() as session:
|
||||||
|
result = session.query(Tag).filter(Tag.slug == test_slug).one_or_none()
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
logger.debug("Tag exists, associating recipe")
|
logger.debug("Tag exists, associating recipe")
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
logger.debug("Tag doesn't exists, creating tag")
|
logger.debug("Tag doesn't exists, creating tag")
|
||||||
return Tag(name=name)
|
return Tag(name=name)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import operator
|
import operator
|
||||||
import shutil
|
import shutil
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from pprint import pprint
|
||||||
|
|
||||||
from fastapi import BackgroundTasks, Depends, File, HTTPException, UploadFile, status
|
from fastapi import BackgroundTasks, Depends, File, HTTPException, UploadFile, status
|
||||||
from mealie.core.config import app_dirs
|
from mealie.core.config import app_dirs
|
||||||
@ -98,6 +99,9 @@ def import_database(
|
|||||||
force_import=import_data.force,
|
force_import=import_data.force,
|
||||||
rebase=import_data.rebase,
|
rebase=import_data.rebase,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
pprint(db_import)
|
||||||
|
|
||||||
background_tasks.add_task(create_backup_event, "Database Restore", f"Restore File: {file_name}", session)
|
background_tasks.add_task(create_backup_event, "Database Restore", f"Restore File: {file_name}", session)
|
||||||
return db_import
|
return db_import
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user