19 lines
677 B
Python
19 lines
677 B
Python
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
|
|
from tg_bot.config.settings import settings
|
|
|
|
database_url = settings.DATABASE_URL
|
|
if database_url.startswith("sqlite:///"):
|
|
database_url = database_url.replace("sqlite:///", "sqlite+aiosqlite:///")
|
|
|
|
engine = create_async_engine(
|
|
database_url,
|
|
echo=settings.DEBUG
|
|
)
|
|
|
|
AsyncSessionLocal = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
|
|
|
|
async def create_tables():
|
|
from .models import Base
|
|
async with engine.begin() as conn:
|
|
await conn.run_sync(Base.metadata.create_all)
|
|
print(f"Таблицы созданы: {settings.DATABASE_URL}") |