diff --git a/.gitignore b/.gitignore index 10bcb67..5aa044e 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,11 @@ __pycache__/ venv/ ENV/ +# SQLite local +*.db +*.sqlite +*.sqlite3 + # Environnement & Secrets .env .env.* diff --git a/apps/backend/app/database.py b/apps/backend/app/database.py index 0913d01..4fa351e 100644 --- a/apps/backend/app/database.py +++ b/apps/backend/app/database.py @@ -1,35 +1,22 @@ -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker -from sqlalchemy.orm import declarative_base - -from dotenv import load_dotenv import os +from sqlalchemy import create_engine +from sqlalchemy.orm import sessionmaker, declarative_base -load_dotenv() +DB_DIR = os.getenv("DATA_DIR", os.path.abspath("../../data")) +os.makedirs(DB_DIR, exist_ok=True) -DATABASE_URL = ( - f"mysql+pymysql://" - f"{os.getenv('DB_USER')}:" - f"{os.getenv('DB_PASSWORD')}@" - f"{os.getenv('DB_HOST')}:" - f"{os.getenv('DB_PORT')}/" - f"{os.getenv('DB_NAME')}" -) +DB_PATH = os.path.join(DB_DIR, "portfolio.db") +SQLALCHEMY_DATABASE_URL = f"sqlite:///{DB_PATH}" engine = create_engine( - DATABASE_URL, - pool_pre_ping=True + SQLALCHEMY_DATABASE_URL, + connect_args={"check_same_thread": False} ) -SessionLocal = sessionmaker( - autocommit=False, - autoflush=False, - bind=engine -) +SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() - def get_db(): db = SessionLocal() try: diff --git a/apps/backend/app/main.py b/apps/backend/app/main.py index 57d7fcb..4a05fb2 100644 --- a/apps/backend/app/main.py +++ b/apps/backend/app/main.py @@ -2,6 +2,8 @@ from fastapi import FastAPI from app.routers import projects, experiences, skills +models.Base.metadata.create_all(bind=engine) + app = FastAPI() app.include_router(projects.router, prefix="/api") diff --git a/apps/backend/requirements.txt b/apps/backend/requirements.txt index 7823962..d425c69 100644 --- a/apps/backend/requirements.txt +++ b/apps/backend/requirements.txt @@ -1,5 +1,4 @@ fastapi uvicorn[standard] sqlalchemy -pymysql python-dotenv \ No newline at end of file diff --git a/data/.gitkeep b/data/.gitkeep new file mode 100644 index 0000000..e69de29