didier/database/engine.py

26 lines
660 B
Python
Raw Normal View History

from urllib.parse import quote_plus
from sqlalchemy.engine import URL
2022-07-11 22:23:38 +02:00
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
from sqlalchemy.orm import sessionmaker
import settings
2022-06-29 00:14:44 +02:00
encoded_password = quote_plus(settings.DB_PASSWORD)
2022-07-19 18:49:22 +02:00
url = URL.create(
drivername="postgresql+asyncpg",
username=settings.DB_USERNAME,
password=encoded_password,
host=settings.DB_HOST,
port=settings.DB_PORT,
database=settings.DB_NAME,
)
2022-06-29 00:14:44 +02:00
engine = create_async_engine(
2022-07-19 18:49:22 +02:00
url,
2022-06-29 00:14:44 +02:00
pool_pre_ping=True,
2022-06-30 15:20:54 +02:00
future=True,
2022-06-29 00:14:44 +02:00
)
DBSession = sessionmaker(autocommit=False, autoflush=False, bind=engine, class_=AsyncSession, expire_on_commit=False)