From dc559e61ae7e84cda481ddc3b0fca052cecc1270 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Tue, 3 Oct 2023 17:39:50 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(manager.py):=20refactor=20cr?= =?UTF-8?q?eate=5Fdb=5Fand=5Ftables=20method=20to=20check=20if=20database?= =?UTF-8?q?=20and=20tables=20already=20exist=20before=20creating=20them?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/services/database/manager.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/backend/langflow/services/database/manager.py b/src/backend/langflow/services/database/manager.py index 8b9dde7bd..18364cd62 100644 --- a/src/backend/langflow/services/database/manager.py +++ b/src/backend/langflow/services/database/manager.py @@ -154,6 +154,14 @@ class DatabaseService(Service): return results def create_db_and_tables(self): + from sqlalchemy import inspect + + inspector = inspect(self.engine) + current_tables = ["flow", "user", "apikey"] + table_names = inspector.get_table_names() + if table_names and all(table in table_names for table in current_tables): + logger.debug("Database and tables already exist") + return logger.debug("Creating database and tables") try: SQLModel.metadata.create_all(self.engine) @@ -163,10 +171,6 @@ class DatabaseService(Service): # 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(self.engine) - current_tables = ["flow", "user", "apikey"] table_names = inspector.get_table_names() for table in current_tables: if table not in table_names: