From 64ecaf6368b187c3408d63d7f4804f09e82c9d66 Mon Sep 17 00:00:00 2001 From: nsxshota Date: Mon, 27 Nov 2023 00:06:26 +0900 Subject: [PATCH] modify: set_database_url --- src/backend/langflow/__main__.py | 14 +++---- .../langflow/services/settings/base.py | 38 ++++++++++--------- src/backend/langflow/settings.py | 6 ++- 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index 5665eb409..87052677e 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -127,13 +127,13 @@ def run( default=None, ), dev: bool = typer.Option(False, help="Run in development mode (may contain bugs)"), - # This variable does not work but is set by the .env file - # and works with Pydantic - database_url: str = typer.Option( - "mysql+pymysql://{}:{}@{}:3306/{}".format(os.environ["username"],os.environ["password"],os.environ["host"],os.environ["dbname"]), - help="Database URL to connect to. If not provided, a local SQLite database will be used.", - envvar="LANGFLOW_DATABASE_URL", - ), + # # This variable does not work but is set by the .env file + # # and works with Pydantic + # database_url: str = typer.Option( + # "mysql+pymysql://{}:{}@{}:3306/{}".format(os.environ["username"],os.environ["password"],os.environ["host"],os.environ["dbname"]), + # help="Database URL to connect to. If not provided, a local SQLite database will be used.", + # envvar="LANGFLOW_DATABASE_URL", + # ), path: str = typer.Option( None, help="Path to the frontend directory containing build files. This is for development purposes only.", diff --git a/src/backend/langflow/services/settings/base.py b/src/backend/langflow/services/settings/base.py index 053c45afd..1f30aa3e0 100644 --- a/src/backend/langflow/services/settings/base.py +++ b/src/backend/langflow/services/settings/base.py @@ -86,29 +86,31 @@ class Settings(BaseSettings): value = langflow_database_url logger.debug("Using LANGFLOW_DATABASE_URL env variable.") else: - logger.debug("No DATABASE_URL env variable, using sqlite database") + # logger.debug("No DATABASE_URL env variable, using sqlite database") + logger.debug("No DATABASE_URL env variable, using custom database from secrets of {}".format(os.environ["host"])) # Originally, we used sqlite:///./langflow.db # so we need to migrate to the new format # if there is a database in that location - if not values["CONFIG_DIR"]: - raise ValueError( - "CONFIG_DIR not set, please set it or provide a DATABASE_URL" - ) + # if not values["CONFIG_DIR"]: + # raise ValueError( + # "CONFIG_DIR not set, please set it or provide a DATABASE_URL" + # ) - new_path = f"{values['CONFIG_DIR']}/langflow.db" - if Path("./langflow.db").exists(): - if Path(new_path).exists(): - logger.debug(f"Database already exists at {new_path}, using it") - else: - try: - logger.debug("Copying existing database to new location") - copy2("./langflow.db", new_path) - logger.debug(f"Copied existing database to {new_path}") - except Exception: - logger.error("Failed to copy database, using default path") - new_path = "./langflow.db" + # new_path = f"{values['CONFIG_DIR']}/langflow.db" + # if Path("./langflow.db").exists(): + # if Path(new_path).exists(): + # logger.debug(f"Database already exists at {new_path}, using it") + # else: + # try: + # logger.debug("Copying existing database to new location") + # copy2("./langflow.db", new_path) + # logger.debug(f"Copied existing database to {new_path}") + # except Exception: + # logger.error("Failed to copy database, using default path") + # new_path = "./langflow.db" - value = f"sqlite:///{new_path}" + # value = f"sqlite:///{new_path}" + value = "mysql+pymysql://{}:{}@{}:3306/{}".format(os.environ["username"],os.environ["password"],os.environ["host"],os.environ["dbname"]) return value diff --git a/src/backend/langflow/settings.py b/src/backend/langflow/settings.py index 6b6e81baf..ab9217d2c 100644 --- a/src/backend/langflow/settings.py +++ b/src/backend/langflow/settings.py @@ -46,8 +46,10 @@ class Settings(BaseSettings): value = langflow_database_url logger.debug("Using LANGFLOW_DATABASE_URL env variable.") else: - logger.debug("No DATABASE_URL env variable, using sqlite database") - value = "sqlite:///./langflow.db" + # logger.debug("No DATABASE_URL env variable, using sqlite database") + logger.debug("No DATABASE_URL env variable, using custom database from secrets of {}".format(os.environ["host"])) + # value = "sqlite:///./langflow.db" + value = "mysql+pymysql://{}:{}@{}:3306/{}".format(os.environ["username"],os.environ["password"],os.environ["host"],os.environ["dbname"]) return value