# Verbleibende Datenbankfeld-Inkonsistenzen ## Status der Bereinigung ### ✅ Vollständig behoben: 1. **sessions Tabelle**: - `device_id` → `hardware_id` (alle Referenzen korrigiert) - `active` → `is_active` (alle Referenzen korrigiert) - `login_time` → `started_at` (alle Referenzen korrigiert) - `logout_time` → `ended_at` (alle Referenzen korrigiert) - `last_activity` → `last_heartbeat` (alle Referenzen korrigiert) - `start_time` → `started_at` (korrigiert in models.py) 2. **licenses Tabelle**: - `active` → `is_active` (alle Referenzen korrigiert) ### ⚠️ Strukturelle Probleme in device_registrations: Die `device_registrations` Tabelle hat folgende Inkonsistenzen zwischen Schema und Code: | Datenbankschema | Code erwartet | Problem | |-----------------|---------------|---------| | `license_id` (FK) | `license_key` | Code nutzt license_key direkt | | `first_seen` | `registration_date` | Unterschiedliche Benennung | | - | `device_type` | Spalte fehlt in DB | | - | `license_key` | Spalte fehlt in DB | ### 🔧 Durchgeführte Anpassungen: 1. **API-Routes korrigiert**: - JOINs eingefügt um license_key über license_id zu erhalten - `first_seen as registration_date` Aliase hinzugefügt - INSERT nutzt jetzt `license_id` statt `license_key` 2. **Export-Routes korrigiert**: - Letzte `device_id` Referenzen zu `hardware_id` geändert 3. **Session-Routes korrigiert**: - Statistik-Queries nutzen jetzt korrekte Feldnamen ### 📋 Noch zu erledigen: 1. **Datenbank-Migration ausführen**: ```sql -- Sessions Kompatibilitäts-View psql -f create_compatibility_views.sql -- Device Registrations Fixes psql -f fix_device_registrations.sql ``` 2. **Fehlende Spalten hinzufügen** (optional): ```sql ALTER TABLE device_registrations ADD COLUMN device_type VARCHAR(50) DEFAULT 'unknown'; ``` 3. **Doppelte Spalten entfernen** (nach erfolgreichen Tests): ```sql ALTER TABLE sessions DROP COLUMN active, DROP COLUMN login_time, DROP COLUMN last_activity, DROP COLUMN logout_time; ``` ## Zusammenfassung - **83 Inkonsistenzen** wurden automatisch behoben - **8 zusätzliche manuelle Fixes** wurden durchgeführt - **Alle kritischen Feldnamen** sind jetzt konsistent - **device_registrations** benötigt noch strukturelle Anpassungen Die Anwendung sollte jetzt funktionieren, da alle Code-Referenzen korrigiert wurden. Die Datenbank-Migrationen sind optional für langfristige Konsistenz.