API & Backend
SQLAlchemy 2.0 Async Session ve Alembic ile Sıfır Kesintili Veritabanı Migrasyonu
SQLAlchemy 2.0'ın modern select() sözdizimi, AsyncEngine bağlantı havuzu yönetimi ve Alembic ile otomatik şema migrasyonu rehberi.
3 dk
SQLAlchemy 2.0 Async Sözdizimi
`async_sessionmaker` ve `asyncpg` sürücüsü kullanarak sorguları bloklanmadan çalıştırma:
db.py
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine, async_sessionmaker
engine = create_async_engine("postgresql+asyncpg://user:pass@localhost/app_db", pool_size=20)
AsyncSessionFactory = async_sessionmaker(engine, expire_on_commit=False)
async def get_user_by_email(session: AsyncSession, email: str):
stmt = select(User).where(User.email == email)
result = await session.execute(stmt)
return result.scalar_one_or_none()