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.sqlload_data.sqlupdate_fahrt.sqldata_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.pyauf. - Daten werden in MongoDB übertragen.
- Optional: Erstellung einer embedded Collection bei Tabellenauswahl.
- Die im
create_shema.sqldefinierte Log-Tabelle wird dabei automatisch mit Konvertierungsdaten gefüllt.
Durch Auswahl eines Reports werden entsprechende SQL-Dateien ausgeführt:
avg_speed_temp_march2024.sqldrivers_last_15_months.sqlmax_speed_per_driver.sql
- Beim Klick auf „Daten importieren“ kann z. B.
unfall.jsonhochgeladen und überinsert_json_to_mongo.pyin 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.pymithilfe einer Stored Procedure (add_fahrt_procedure.sql) eine Fahrt mit Zufallswerten erzeugt.
- MySQL-Import per Button:
initiate_db.pyerledigt 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 MySQL80Get-Service | Where-Object { $_.Name -like "*mongo*" }
net start MongoDB
# oder
net start MongoDBServerMySQL & 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-2425python -m venv .venv
.venv\Scripts\Activate.ps1pip install -r requirements.txtSECRET_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_dbflask runFalls 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