hyungjoochae's picture
Upload folder using huggingface_hub
321a7a2 verified
from sqlmodel import Session, SQLModel, create_engine
from app.core.config import settings
def _connect_args(db_url: str) -> dict:
if db_url.startswith("sqlite"):
# Add a busy timeout so concurrent startups/seed runs don't immediately fail with "database is locked".
return {"check_same_thread": False, "timeout": 30}
return {}
engine = create_engine(settings.DATABASE_URL, echo=False, connect_args=_connect_args(settings.DATABASE_URL))
def init_db() -> None:
# For dev convenience. In production, prefer Alembic migrations.
# Ensure all models are imported so SQLModel registers tables.
# (If a model module is never imported, its table won't be created.)
from app.models.product import Product # noqa: F401
from app.models.user import User # noqa: F401
from app.models.address import Address # noqa: F401
from app.models.variant import ProductVariant # noqa: F401
from app.models.review import Review # noqa: F401
from app.models.suggestion import SearchSuggestion # noqa: F401
from app.models.cart import Cart, CartItem # noqa: F401
from app.models.order import Order, OrderItem # noqa: F401
SQLModel.metadata.create_all(engine)
def get_session():
with Session(engine) as session:
yield session