From 6e154f71962f31f3a66dedc30d25052f6d498962 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Thu, 29 May 2025 12:10:23 +0200 Subject: [PATCH] "feat: Update database schema documentation and related files" --- .../app/DATABASE_SCHEMA_FIX_DOCUMENTATION.md | 1 + backend/app/database/myp.db-wal | Bin 45352 -> 82432 bytes backend/app/debug_database.py | 1 + backend/app/migrate_db.py | 37 ++++++++++++------ 4 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 backend/app/DATABASE_SCHEMA_FIX_DOCUMENTATION.md create mode 100644 backend/app/debug_database.py diff --git a/backend/app/DATABASE_SCHEMA_FIX_DOCUMENTATION.md b/backend/app/DATABASE_SCHEMA_FIX_DOCUMENTATION.md new file mode 100644 index 000000000..0519ecba6 --- /dev/null +++ b/backend/app/DATABASE_SCHEMA_FIX_DOCUMENTATION.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/app/database/myp.db-wal b/backend/app/database/myp.db-wal index abf5e3e450f8d2da311787011ada95c6e3457a85..7712079b10166e179149a23f428ea8066c9ac7d1 100644 GIT binary patch literal 82432 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 delta 9 QcmZo@VO{ZvX@kZ_02Dt29{>OV diff --git a/backend/app/debug_database.py b/backend/app/debug_database.py new file mode 100644 index 000000000..0519ecba6 --- /dev/null +++ b/backend/app/debug_database.py @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/app/migrate_db.py b/backend/app/migrate_db.py index d36325ba7..518f7f137 100644 --- a/backend/app/migrate_db.py +++ b/backend/app/migrate_db.py @@ -13,6 +13,7 @@ sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from models import init_db, get_cached_session, GuestRequest, UserPermission, Notification, User from utils.logging_config import get_logger +from config.settings import DATABASE_PATH logger = get_logger("migrate") @@ -24,19 +25,29 @@ def column_exists(cursor, table_name, column_name): def get_database_path(): """Ermittelt den Pfad zur Datenbankdatei.""" - db_path = os.path.join('database', 'app.db') - if not os.path.exists(db_path): - # Fallback für alternative Pfade - alternative_paths = [ - 'app.db', - '../database/app.db', - './database/app.db' - ] - for path in alternative_paths: - if os.path.exists(path): - db_path = path - break - return db_path + # Verwende den korrekten Datenbankpfad aus der Konfiguration + if os.path.exists(DATABASE_PATH): + return DATABASE_PATH + + # Fallback für alternative Pfade mit korrektem Dateinamen + alternative_paths = [ + os.path.join('database', 'myp.db'), + 'myp.db', + '../database/myp.db', + './database/myp.db', + # Legacy-Pfade für Rückwärtskompatibilität + os.path.join('database', 'app.db'), + 'app.db', + '../database/app.db', + './database/app.db' + ] + + for path in alternative_paths: + if os.path.exists(path): + return path + + # Falls keine Datei gefunden wird, verwende den konfigurierten Pfad + return DATABASE_PATH def migrate_guest_requests_table(): """Migriert die guest_requests Tabelle für neue Spalten."""