Spaces:
Build error
Build error
| 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 | |