From 4958e5030a4b5626f7d3fa73c207fed852732573 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 21:24:45 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20feat(database):=20add=20database?= =?UTF-8?q?=20module=20with=20base=20and=20models=20modules=20The=20databa?= =?UTF-8?q?se=20module=20has=20been=20added=20to=20the=20project,=20which?= =?UTF-8?q?=20includes=20the=20base=20and=20models=20modules.=20The=20base?= =?UTF-8?q?=20module=20contains=20the=20create=5Fdb=5Fand=5Ftables=20funct?= =?UTF-8?q?ion=20that=20creates=20the=20database=20and=20tables,=20and=20t?= =?UTF-8?q?he=20get=5Fsession=20function=20that=20returns=20a=20session=20?= =?UTF-8?q?object.=20The=20models=20module=20contains=20the=20Flow=20model?= =?UTF-8?q?,=20which=20has=20the=20id,=20name,=20and=20flow=20fields.=20Th?= =?UTF-8?q?e=20FlowBase,=20FlowCreate,=20and=20FlowRead=20classes=20are=20?= =?UTF-8?q?also=20included=20in=20the=20models=20module.=20These=20classes?= =?UTF-8?q?=20are=20used=20to=20define=20the=20schema=20for=20the=20Flow?= =?UTF-8?q?=20model.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/database/__init__.py | 0 src/backend/langflow/database/base.py | 17 +++++++++++++++ .../langflow/database/models/__init__.py | 0 src/backend/langflow/database/models/flow.py | 21 +++++++++++++++++++ 4 files changed, 38 insertions(+) create mode 100644 src/backend/langflow/database/__init__.py create mode 100644 src/backend/langflow/database/base.py create mode 100644 src/backend/langflow/database/models/__init__.py create mode 100644 src/backend/langflow/database/models/flow.py diff --git a/src/backend/langflow/database/__init__.py b/src/backend/langflow/database/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/backend/langflow/database/base.py b/src/backend/langflow/database/base.py new file mode 100644 index 000000000..6aa36baab --- /dev/null +++ b/src/backend/langflow/database/base.py @@ -0,0 +1,17 @@ +from langflow.settings import settings +from sqlmodel import SQLModel, Session, create_engine + +sqlite_file_name = "database.db" +sqlite_url = f"sqlite:///{sqlite_file_name}" + +connect_args = {"check_same_thread": False} +engine = create_engine(sqlite_url, connect_args=connect_args) + + +def create_db_and_tables(): + SQLModel.metadata.create_all(engine) + + +def get_session(): + with Session(engine) as session: + yield session diff --git a/src/backend/langflow/database/models/__init__.py b/src/backend/langflow/database/models/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/backend/langflow/database/models/flow.py b/src/backend/langflow/database/models/flow.py new file mode 100644 index 000000000..d7c0ea698 --- /dev/null +++ b/src/backend/langflow/database/models/flow.py @@ -0,0 +1,21 @@ +from typing import List +from pydantic import BaseModel +from sqlmodel import Field, SQLModel +from uuid import UUID, uuid4 + + +class FlowBase(SQLModel): + name: str = Field(index=True) + flow: str = Field(index=False) + + +class Flow(FlowBase, table=True): + id: UUID = Field(default_factory=uuid4, primary_key=True, unique=True) + + +class FlowCreate(FlowBase): + pass + + +class FlowRead(FlowBase): + id: UUID