Projektarbeit-MYP/backend/docs/DATENBANK_KONFIGURATION.md

3.2 KiB

Datenbank-Konfiguration MYP Platform

Übersicht

Die MYP Platform verwendet ausschließlich eine SQLite-Datenbank:

database/myp.db

Konfiguration

Haupt-Konfiguration

  • Datei: config/settings.py
  • Variable: DATABASE_PATH = os.path.join(BASE_DIR, "database", "myp.db")
  • Engine: SQLite mit WAL-Modus (Write-Ahead Logging)

Sichergestellte Konsistenz

Alle folgenden Dateien wurden korrigiert, um ausschließlich database/myp.db zu verwenden:

Konfigurationsdateien

  • config/settings.py - Haupt-Konfiguration
  • config/app_config.py - Alternative Flask-Konfiguration (korrigiert)

Model- und Datenbankdateien

  • models.py - Hauptmodelle und Engine-Konfiguration
  • database/db_manager.py - Datenbank-Manager

Utilities und Tools

  • utils/migrate_db.py - Datenbank-Migration (Legacy-Fallbacks entfernt)
  • utils/quick_fix.py - Schnelle Reparatur-Tools (korrigiert)
  • utils/debug_drucker_erkennung.py - Debug-Tools (korrigiert)
  • utils/database_utils.py - Backup und Wartung
  • utils/database_cleanup.py - Cleanup-Manager
  • utils/database_schema_migration.py - Schema-Migration

Entfernte/Korrigierte Inkonsistenzen

🗑️ Gelöschte Dateien

  • database/production.db (leer, 0KB) - entfernt

🔧 Korrigierte Fallbacks

  • Entfernt: Referenzen zu app.db, database.db, data/myp_platform.db
  • Korrigiert: Tabellennamen von printer zu printers
  • Vereinheitlicht: Alle Import-Pfade verwenden config.settings.DATABASE_PATH

Verwendung

Datenbank initialisieren

from models import init_db
init_db()

Session verwenden

from models import get_cached_session

with get_cached_session() as session:
    # Datenbankoperationen
    pass

Backup erstellen

from utils.database_utils import DatabaseBackupManager

backup_manager = DatabaseBackupManager()
backup_manager.create_backup()

Optimierungen

Die Datenbank ist für Produktionsumgebung optimiert:

  • WAL-Modus: Write-Ahead Logging für bessere Performance
  • Connection Pooling: Optimierte Verbindungsverwaltung
  • Caching: Intelligent caching system für häufige Abfragen
  • Auto-Vacuum: Automatische Speicherbereinigung
  • Indizierung: Optimierte Indizes für bessere Performance

Wartung

Automatische Wartung

  • WAL-Checkpoints alle 1000 Seiten
  • Incremental Vacuum alle 60 Minuten
  • Statistik-Updates alle 30 Minuten

Manuelle Wartung

# Migration ausführen
python utils/migrate_db.py

# Schnelle Reparatur
python utils/quick_fix.py

# Diagnose
python utils/debug_drucker_erkennung.py

Wichtige Hinweise

⚠️ NUR database/myp.db verwenden!

  • Keine anderen Datenbankdateien verwenden
  • Alle Tools und Scripts sind auf diese Datei konfiguriert
  • Bei Problemen: Backup aus database/backups/ verwenden

🔒 Backup-Strategie

  • Automatische Backups in database/backups/
  • Vor größeren Operationen manuelles Backup erstellen
  • WAL- und SHM-Dateien gehören zur Datenbank (nicht löschen!)

📊 Monitoring

  • Log-Dateien in logs/app/
  • Performance-Monitoring via utils/database_utils.py
  • Health-Checks über API-Endpunkte verfügbar