-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase.py
More file actions
28 lines (19 loc) · 789 Bytes
/
database.py
File metadata and controls
28 lines (19 loc) · 789 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
from sqlalchemy.orm import DeclarativeBase
from config import settings
USER = settings.POSTGRES_USER
PASSWORD = settings.POSTGRES_PASSWORD.get_secret_value()
HOST = settings.POSTGRES_HOST
PORT = settings.POSTGRES_PORT
DB_NAME = settings.POSTGRES_DB
ASYNC_DATABASE_URL = f"postgresql+asyncpg://{USER}:{PASSWORD}@{HOST}:{PORT}/{DB_NAME}"
SYNC_DATABASE_URL = f"postgresql://{USER}:{PASSWORD}@{HOST}:{PORT}/{DB_NAME}"
engine = create_async_engine(ASYNC_DATABASE_URL)
new_session = async_sessionmaker(engine, expire_on_commit=False)
# Base Class for table creation
class Base(DeclarativeBase):
pass
# Session creation
async def get_session():
async with new_session() as session:
yield session