import csv from datetime import datetime from database import Database from model.ticker import Ticker database = Database() def load_database(chunk_size=100000): database.drop_tables() database.create_tables() with open("./data/output/tickers.csv") as file: try: rows = [] reader = csv.DictReader(file) total = 0 for row in reader: ticker = Ticker( date=datetime.strptime(row.get("date"), "%Y-%m-%d").date(), symbol=row.get("symbol"), open=row.get("open"), high=row.get("high"), low=row.get("low"), close=row.get("close"), volume=row.get("volume") ) rows.append(ticker) if len(rows) >= chunk_size: database.session.bulk_save_objects(rows) database.session.commit() total += chunk_size print(f"{total} rows inserted") rows = [] # Insert any remaining rows. if rows: database.session.bulk_save_objects(rows) database.session.commit() total += len(rows) print(f"{total} inserted") except Exception as e: import pprint pprint.pprint(e) if __name__ == "__main__": load_database()