File size: 724 Bytes
2deb2c5 | 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 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}
|