# 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 