From 3c3761ba7b423ca4c7846a9f266d17d0ed2e4b96 Mon Sep 17 00:00:00 2001 From: Paillat Date: Tue, 20 Feb 2024 14:46:43 +0100 Subject: [PATCH] Add new models and database manager --- src/models/Base.py | 3 +++ src/models/DatabaseManager.py | 15 +++++++++++++++ src/models/File.py | 14 ++++++++++++++ src/models/__init__.py | 3 +++ 4 files changed, 35 insertions(+) create mode 100644 src/models/Base.py create mode 100644 src/models/DatabaseManager.py create mode 100644 src/models/File.py create mode 100644 src/models/__init__.py diff --git a/src/models/Base.py b/src/models/Base.py new file mode 100644 index 0000000..59be703 --- /dev/null +++ b/src/models/Base.py @@ -0,0 +1,3 @@ +from sqlalchemy.orm import declarative_base + +Base = declarative_base() diff --git a/src/models/DatabaseManager.py b/src/models/DatabaseManager.py new file mode 100644 index 0000000..f02b099 --- /dev/null +++ b/src/models/DatabaseManager.py @@ -0,0 +1,15 @@ +import os + +from sqlalchemy import create_engine +from sqlalchemy.orm import Session, sessionmaker + +from . import Base + +engine = create_engine(f"sqlite:///local/database/db.db") + +SessionLocal = sessionmaker(bind=engine) + + +def init_db(): + Base.metadata.create_all(engine) + pass diff --git a/src/models/File.py b/src/models/File.py new file mode 100644 index 0000000..ac004e4 --- /dev/null +++ b/src/models/File.py @@ -0,0 +1,14 @@ +from . import Base +from typing import Optional +from sqlalchemy import String, Column, JSON, Integer +from sqlalchemy.ext.mutable import MutableDict + + +class File(Base): + __tablename__ = "files" + + id = Column(Integer, primary_key=True, autoincrement=True) + provider: str = Column(String, nullable=False) + type: str = Column(String, nullable=True) + path: str = Column(String, nullable=False) + data: dict = Column(MutableDict.as_mutable(JSON), nullable=False, default={}) diff --git a/src/models/__init__.py b/src/models/__init__.py new file mode 100644 index 0000000..ed7e745 --- /dev/null +++ b/src/models/__init__.py @@ -0,0 +1,3 @@ +from .Base import Base +from .DatabaseManager import SessionLocal, init_db +from .File import File