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