-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmigrate_sqlite.py
More file actions
33 lines (28 loc) · 1.06 KB
/
Copy pathmigrate_sqlite.py
File metadata and controls
33 lines (28 loc) · 1.06 KB
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
31
32
33
# migrate_sqlite.py
import pandas as pd
from db import init_db, SessionLocal
from models import Submission
from datetime import datetime
def load_csv_to_sqlite(csv_path="data/leetcode_sample.csv"):
# create tables if needed
init_db()
df = pd.read_csv(csv_path, parse_dates=["date"])
session = SessionLocal()
# optional: clear existing rows (uncomment if you want fresh replace)
# session.query(Submission).delete()
# session.commit()
for _, row in df.iterrows():
s = Submission(
date = row['date'].date() if not pd.isna(row['date']) else None,
problem_id = int(row['problem_id']),
difficulty = str(row['difficulty']),
status = str(row['status']),
tags = str(row['tags']),
time_taken_minutes = float(row['time_taken_minutes']) if not pd.isna(row['time_taken_minutes']) else None
)
session.add(s)
session.commit()
session.close()
print("CSV data imported to SQLite (data/leetcode.db).")
if __name__ == "__main__":
load_csv_to_sqlite()