diff --git a/src/backend/langflow/database/base.py b/src/backend/langflow/database/base.py index add28192a..256434523 100644 --- a/src/backend/langflow/database/base.py +++ b/src/backend/langflow/database/base.py @@ -2,17 +2,22 @@ from langflow.settings import settings from sqlmodel import SQLModel, Session, create_engine from langflow.utils.logger import logger -if settings.database_url.startswith("sqlite"): +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") engine = create_engine(settings.database_url, connect_args=connect_args) def create_db_and_tables(): logger.debug("Creating database and tables") - SQLModel.metadata.create_all(engine) + try: + SQLModel.metadata.create_all(engine) + 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 @@ -21,6 +26,7 @@ def create_db_and_tables(): 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")