# 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 ```python from models import init_db init_db() ``` ### Session verwenden ```python from models import get_cached_session with get_cached_session() as session: # Datenbankoperationen pass ``` ### Backup erstellen ```python 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 ```bash # 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