File size: 865 Bytes
310260a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | from sqlmodel import SQLModel, create_engine, Session
from sqlalchemy.pool import NullPool
from .config import settings
# Import models to register them with SQLModel metadata
from .models.user import User # noqa: F401
from .models.task import Task # noqa: F401
from .models.conversation import Conversation # noqa: F401
from .models.message import Message # noqa: F401
# Create engine with appropriate pooling for serverless
engine = create_engine(
settings.DATABASE_URL,
echo=settings.DEBUG,
poolclass=NullPool # Let Neon handle connection pooling
)
def init_db():
"""Initialize database by creating all tables."""
SQLModel.metadata.create_all(engine)
print("Database tables created successfully")
def get_session():
"""Dependency for getting database session."""
with Session(engine) as session:
yield session
|