29 lines
714 B

from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
from sqlalchemy.orm import DeclarativeBase
import os
from dotenv import load_dotenv
load_dotenv()
class Model(DeclarativeBase):
pass
async_engine = create_async_engine(
os.getenv("SQL_URL"),
connect_args={"check_same_thread": False}
)
async_session = async_sessionmaker(
async_engine,
autoflush=True,
autocommit=False,
expire_on_commit =False
)
async def connect() -> None:
async with async_engine.begin() as conn:
await conn.run_sync(Model.metadata.create_all, checkfirst=True)
async def disconnect() -> None:
if async_engine:
await async_engine.dispose()