Dateien
Hetzner-Backup/v2_adminpanel/REMAINING_INCONSISTENCIES.md
2025-06-18 19:40:14 +02:00

2.5 KiB

Verbleibende Datenbankfeld-Inkonsistenzen

Status der Bereinigung

Vollständig behoben:

  1. sessions Tabelle:

    • device_idhardware_id (alle Referenzen korrigiert)
    • activeis_active (alle Referenzen korrigiert)
    • login_timestarted_at (alle Referenzen korrigiert)
    • logout_timeended_at (alle Referenzen korrigiert)
    • last_activitylast_heartbeat (alle Referenzen korrigiert)
    • start_timestarted_at (korrigiert in models.py)
  2. licenses Tabelle:

    • activeis_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:

    -- 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):

    ALTER TABLE device_registrations 
    ADD COLUMN device_type VARCHAR(50) DEFAULT 'unknown';
    
  3. Doppelte Spalten entfernen (nach erfolgreichen Tests):

    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.