From fbe4e8cbee3dfe4c9ee5dd405e950793d3f38e1b Mon Sep 17 00:00:00 2001 From: ChUrl Date: Fri, 3 Nov 2023 16:51:20 +0100 Subject: [PATCH] Add some database import export functions --- database_utils.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 database_utils.py diff --git a/database_utils.py b/database_utils.py new file mode 100644 index 0000000..dd80af8 --- /dev/null +++ b/database_utils.py @@ -0,0 +1,36 @@ +import csv +from model import * + +def load_csv(filename): + with open("data/" + filename + ".csv", newline="") as file: + reader = csv.reader(file, delimiter=",") + next(reader, None) # skip header + return list(reader) + +# @todo CSV-Writer +def write_csv(filename): + with open("data/" + filename + ".csv", newline="") as file: + writer = csv.writer(file, delimiter=",") + +# @todo Complete CSV Files +# @todo Reload Static Data +# Reload static database data, this has to be called from the app context +def reload_static_data(db): + print("Initializing DataBase with Static Values...") + # Create it (if it doesn't exist!) + db.create_all() + + # Clear static data + Team.query.delete() + Driver.query.delete() + + # Reload static data + for row in load_csv("teams"): + db.session.add(Team().from_csv(row)) + for row in load_csv("drivers"): + db.session.add(Driver().from_csv(row)) + db.session.commit() + +# @todo Export Dynamic Data +def export_dynamic_data(): + pass \ No newline at end of file