From f72a42213c3783c520bb5a2e0f20e2f1bc6d8c94 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Sat, 5 Aug 2023 23:19:14 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A5=20refactor(base.py):=20remove=20un?= =?UTF-8?q?used=20imports=20and=20code=20related=20to=20database=20engine?= =?UTF-8?q?=20creation=20and=20session=20handling=20=F0=9F=94=A5=20refacto?= =?UTF-8?q?r(base.py):=20remove=20unused=20code=20related=20to=20loading?= =?UTF-8?q?=20settings=20from=20YAML=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../langflow/services/database/base.py | 61 ------------------- .../langflow/services/settings/base.py | 4 -- 2 files changed, 65 deletions(-) diff --git a/src/backend/langflow/services/database/base.py b/src/backend/langflow/services/database/base.py index fffb39096..cfc434f25 100644 --- a/src/backend/langflow/services/database/base.py +++ b/src/backend/langflow/services/database/base.py @@ -1,5 +1,4 @@ from contextlib import contextmanager -import os from pathlib import Path from langflow.services.base import Service from sqlmodel import SQLModel, Session, create_engine @@ -8,61 +7,6 @@ from alembic.config import Config from alembic import command -class Engine: - _instance = None - - @classmethod - def get(cls): - logger.debug("Getting database engine") - if cls._instance is None: - cls.create() - return cls._instance - - @classmethod - def create(cls): - logger.debug("Creating database engine") - from langflow.settings import settings - - if langflow_database_url := os.getenv("LANGFLOW_DATABASE_URL"): - settings.DATABASE_URL = langflow_database_url - logger.debug("Using LANGFLOW_DATABASE_URL") - - if settings.DATABASE_URL and settings.DATABASE_URL.startswith("sqlite"): - connect_args = {"check_same_thread": False} - else: - connect_args = {} - if not settings.DATABASE_URL: - raise RuntimeError("No database_url provided") - cls._instance = create_engine(settings.DATABASE_URL, connect_args=connect_args) - - @classmethod - def update(cls): - logger.debug("Updating database engine") - cls._instance = None - cls.create() - - -def create_db_and_tables(): - logger.debug("Creating database and tables") - try: - SQLModel.metadata.create_all(Engine.get()) - except Exception as exc: - logger.error(f"Error creating database and tables: {exc}") - raise RuntimeError("Error creating database and tables") from exc - # Now check if the table Flow exists, if not, something went wrong - # and we need to create the tables again. - from sqlalchemy import inspect - - inspector = inspect(Engine.get()) - if "flow" not in inspector.get_table_names(): - logger.error("Something went wrong creating the database and tables.") - logger.error("Please check your database settings.") - - raise RuntimeError("Something went wrong creating the database and tables.") - else: - logger.debug("Database and tables created successfully") - - class DatabaseManager(Service): name = "database_manager" @@ -136,11 +80,6 @@ def session_getter(db_manager: DatabaseManager): session.close() -def get_session(): - with Session(Engine.get()) as session: - yield session - - def initialize_database(): logger.debug("Initializing database") from langflow.services import service_manager, ServiceType diff --git a/src/backend/langflow/services/settings/base.py b/src/backend/langflow/services/settings/base.py index 9843339a5..1eb2793b3 100644 --- a/src/backend/langflow/services/settings/base.py +++ b/src/backend/langflow/services/settings/base.py @@ -166,7 +166,3 @@ def load_settings_from_yaml(file_path: str) -> Settings: logger.debug(f"Loading {len(settings_dict[key])} {key} from {file_path}") return Settings(**settings_dict) - - -langflow_dir = Path(__file__).parent.parent.parent -settings = load_settings_from_yaml(str(langflow_dir / "config.yaml"))