From d81875c1137daae9590748e956ed5a1545d626b8 Mon Sep 17 00:00:00 2001 From: Andrei Duvakin Date: Fri, 31 Jan 2025 19:31:43 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B8=D0=BD=D0=B8=D1=86=D0=B8=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BA=D1=82=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + api/app/__init__.py | 0 api/app/core/config.py | 11 +++++++++++ api/app/infrastructure/database/models/__init__.py | 0 api/app/infrastructure/database/session.py | 13 +++++++++++++ api/app/main.py | 0 6 files changed, 25 insertions(+) create mode 100644 .gitignore create mode 100644 api/app/__init__.py create mode 100644 api/app/core/config.py create mode 100644 api/app/infrastructure/database/models/__init__.py create mode 100644 api/app/infrastructure/database/session.py create mode 100644 api/app/main.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..72932e1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/api/.env diff --git a/api/app/__init__.py b/api/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api/app/core/config.py b/api/app/core/config.py new file mode 100644 index 0000000..11d4a53 --- /dev/null +++ b/api/app/core/config.py @@ -0,0 +1,11 @@ +from pydantic import BaseSettings + + +class Settings(BaseSettings): + DATABASE_URL: str = "postgresql+asyncpg://user:password@localhost:5432/dbname" + + class Config: + env_file = ".env" + + +settings = Settings() diff --git a/api/app/infrastructure/database/models/__init__.py b/api/app/infrastructure/database/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api/app/infrastructure/database/session.py b/api/app/infrastructure/database/session.py new file mode 100644 index 0000000..57da850 --- /dev/null +++ b/api/app/infrastructure/database/session.py @@ -0,0 +1,13 @@ +from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine +from sqlalchemy.orm import sessionmaker +from app.core.config import settings + +engine = create_async_engine(settings.DATABASE_URL, echo=True) + +async_session_maker = sessionmaker( + bind=engine, class_=AsyncSession, expire_on_commit=False +) + +async def get_db(): + async with async_session_maker() as session: + yield session diff --git a/api/app/main.py b/api/app/main.py new file mode 100644 index 0000000..e69de29