← ClaudeAtlas

sqlalchemy-patternslisted

SQLAlchemy 2.0 patterns — ORM models, async sessions, relationships, queries, Alembic migrations, repository pattern, and performance optimization.
Izangi2714/claude-code-python-stack · ★ 0 · API & Backend · score 65
Install: claude install-skill Izangi2714/claude-code-python-stack
# SQLAlchemy 2.0 Patterns Modern SQLAlchemy patterns for building robust data access layers. ## When to Activate - Designing database models with SQLAlchemy - Writing database queries (sync or async) - Setting up Alembic migrations - Implementing repository pattern - Optimizing query performance ## Database Setup (Async) ```python from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession from sqlalchemy.orm import DeclarativeBase from app.config import settings engine = create_async_engine( settings.DATABASE_URL, echo=settings.DEBUG, pool_size=20, max_overflow=10, pool_pre_ping=True, ) AsyncSessionLocal = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False) class Base(DeclarativeBase): pass async def get_db_session() -> AsyncGenerator[AsyncSession, None]: async with AsyncSessionLocal() as session: try: yield session await session.commit() except Exception: await session.rollback() raise ``` ## Model Patterns ### Base Model with Common Fields ```python from sqlalchemy import DateTime, func from sqlalchemy.orm import Mapped, mapped_column from datetime import datetime class TimestampMixin: created_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now() ) updated_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now(), onupdate=func.n