From a2eef6b73da6a104c32ab383876fbe04fe189142 Mon Sep 17 00:00:00 2001 From: Hayden Date: Sat, 16 Jan 2021 20:14:10 -0900 Subject: [PATCH] bug: ensure diretory exists before mount sql --- mealie/app.py | 7 +++++-- mealie/app_config.py | 10 ++++++++++ mealie/db/db_setup.py | 6 +++--- mealie/db/sql/db_session.py | 1 - mealie/utils/startup.py | 5 +---- 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/mealie/app.py b/mealie/app.py index 365079ed6..e7d48e1f7 100644 --- a/mealie/app.py +++ b/mealie/app.py @@ -2,7 +2,7 @@ import uvicorn from fastapi import FastAPI from fastapi.staticfiles import StaticFiles -import utils.startup as startup +# import utils.startup as startup from app_config import PORT, PRODUCTION, WEB_PATH, docs_url, redoc_url from routes import ( backup_routes, @@ -16,7 +16,10 @@ from routes import ( from utils.api_docs import generate_api_docs from utils.logger import logger -startup.pre_start() +# startup.pre_start() + +# if USE_SQL: +# sql_global_init() app = FastAPI( title="Mealie", diff --git a/mealie/app_config.py b/mealie/app_config.py index a4e9d5aa7..455745c01 100644 --- a/mealie/app_config.py +++ b/mealie/app_config.py @@ -6,6 +6,11 @@ import dotenv CWD = Path(__file__).parent +def ensure_dirs(): + for dir in REQUIRED_DIRS: + dir.mkdir(parents=True, exist_ok=True) + + # Register ENV ENV = CWD.joinpath(".env") dotenv.load_dotenv(ENV) @@ -51,6 +56,8 @@ DATABASE_TYPE = os.getenv("db_type", "sql") # mongo, tinydb if DATABASE_TYPE == "sql": USE_SQL = True USE_MONGO = False + SQLITE_FILE = SQLITE_DIR.joinpath("mealie.sqlite") + elif DATABASE_TYPE == "mongo": USE_MONGO = True @@ -71,3 +78,6 @@ DB_PORT = os.getenv("db_port", 27017) # SFTP Email Stuff - For use Later down the line! SFTP_USERNAME = os.getenv("sftp_username", None) SFTP_PASSWORD = os.getenv("sftp_password", None) + + +ensure_dirs() diff --git a/mealie/db/db_setup.py b/mealie/db/db_setup.py index cd0b4d6d7..15fb98d35 100644 --- a/mealie/db/db_setup.py +++ b/mealie/db/db_setup.py @@ -1,10 +1,10 @@ -from app_config import DATA_DIR, SQLITE_DIR, USE_MONGO, USE_SQL +from app_config import SQLITE_FILE, USE_MONGO, USE_SQL from db.sql.db_session import globa_init as sql_global_init if USE_SQL: - db_file = DATA_DIR.joinpath("mealie.sqlite") - sql_global_init(db_file) + sql_global_init(SQLITE_FILE) + pass elif USE_MONGO: from db.mongo.mongo_setup import global_init as mongo_global_init diff --git a/mealie/db/sql/db_session.py b/mealie/db/sql/db_session.py index 3798a8b0f..442d401cb 100644 --- a/mealie/db/sql/db_session.py +++ b/mealie/db/sql/db_session.py @@ -13,7 +13,6 @@ def globa_init(db_file: Path): if __factory: return - conn_str = "sqlite:///" + str(db_file.absolute()) engine = sa.create_engine(conn_str, echo=False) diff --git a/mealie/utils/startup.py b/mealie/utils/startup.py index 580be464f..b6678179d 100644 --- a/mealie/utils/startup.py +++ b/mealie/utils/startup.py @@ -7,13 +7,10 @@ CWD = Path(__file__).parent def pre_start(): - ensure_dirs() default_theme_init() -def ensure_dirs(): - for dir in REQUIRED_DIRS: - dir.mkdir(parents=True, exist_ok=True) + if __name__ == "__main__":