Diese Web-Anwendung ermöglicht das Arbeiten mit zwei Datenbankmodellen (MySQL und MongoDB) – ganz ohne manuelle Skriptausführung. Alle Aufgaben lassen sich bequem über die Benutzeroberfläche mit einem Klick ausführen.
Beim Klick auf „SQL-Daten importieren“ wird initiate_db.py
ausgeführt. Dieses ruft folgende Module auf:
-
enable_local_infile.py
Aktiviert das Laden lokaler Daten (enable_local_infile()
). -
import_sql_db.py
Führt folgende SQL-Skripte aus – in dieser Reihenfolge:create_shema.sql
load_data.sql
update_fahrt.sql
data_cleanup.sql
-
activate_triggers.py
Aktiviert Trigger für das Logging in der Changelog-Tabelle. -
activate_procedures.py
Aktiviert Stored Procedures zum späteren Hinzufügen von Fahrten.
- „In MongoDB konvertieren“ ruft
convert_to_mongo.py
auf. - Daten werden in MongoDB übertragen.
- Optional: Erstellung einer embedded Collection bei Tabellenauswahl.
- Die im
create_shema.sql
definierte Log-Tabelle wird dabei automatisch mit Konvertierungsdaten gefüllt.
Durch Auswahl eines Reports werden entsprechende SQL-Dateien ausgeführt:
avg_speed_temp_march2024.sql
drivers_last_15_months.sql
max_speed_per_driver.sql
- Beim Klick auf „Daten importieren“ kann z. B.
unfall.json
hochgeladen und überinsert_json_to_mongo.py
in MongoDB eingefügt werden.
- Beim Editieren einer MySQL-Tabelle wird automatisch ein zugehöriger Trigger ausgeführt (
Tabelle-Namen_trigger.sql
), der Änderungen in einer Changelog-Tabelle protokolliert.
- Per Knopfdruck wird in der Route
route_generate_random_fahrt.py
mithilfe einer Stored Procedure (add_fahrt_procedure.sql
) eine Fahrt mit Zufallswerten erzeugt.
- MySQL-Import per Button:
initiate_db.py
erledigt alles automatisch. - MySQL/MongoDB löschen: Per Button werden
reset_mysql()
bzw.reset_mongo()
aufgerufen. - Zufällige Fahrt erstellen: Siehe oben bei „Zufällige Fahrt generieren“.
Get-Service | Where-Object { $_.Name -like "*mysql*" }
net start mysql
# oder
net start MySQL80
Get-Service | Where-Object { $_.Name -like "*mongo*" }
net start MongoDB
# oder
net start MongoDBServer
MySQL & MySQL Shell müssen installiert sein:
MongoDB & MongoDB Shell müssen installiert sein:
git clone https://github.com/Sahinbascoding/dhbw-db-2425.git
cd dhbw-db-2425
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
SECRET_KEY=dein-secret-key
MYSQL_HOST=127.0.0.1
MYSQL_USER=root
MYSQL_PASSWORD=deinpasswort
MYSQL_DB_NAME=dein_db_name
MONGO_HOST=localhost
MONGO_PORT=27017
MONGO_DB_NAME=dein_mongo_db
flask run
Falls gewünscht, können die MYSQL und Python-files auch manuell ausgeführt werden. Dafür das README_Manual.md lesen.
Version: 1.0
Stand: 18.05.2025
Contributors:
- 🧑💻 Ata Sahinbas, Luis Kilic