| from sqlalchemy import select | |
| from sqlalchemy.orm import Session | |
| from app.core.database import Base, engine | |
| from app.data.seed_assets import SEED_ASSETS | |
| from app.models import Asset | |
| def create_schema() -> None: | |
| Base.metadata.create_all(bind=engine) | |
| def seed_asset_universe(db: Session) -> int: | |
| inserted = 0 | |
| existing = set(db.scalars(select(Asset.ticker)).all()) | |
| for item in SEED_ASSETS: | |
| if item["ticker"] in existing: | |
| continue | |
| db.add(Asset(**item)) | |
| inserted += 1 | |
| db.commit() | |
| return inserted | |
| def bootstrap_database(db: Session) -> dict: | |
| create_schema() | |
| inserted = seed_asset_universe(db) | |
| return {"schema_ready": True, "seeded_assets": inserted} | |