Admin · Aktionen

Schema-Check

Diese Seite (Admin → Aktionen → „Schema-Check") vergleicht das im Code definierte Datenbank-Schema mit dem tatsächlichen Stand Deiner Datenbank und repariert Abweichungen auf Knopfdruck. Du brauchst sie vor allem nach einem Code-Update, das neue Tabellen, Spalten oder Default-Daten mitbringt.

ℹ️ Wenn etwas am Schema fehlt, warnt das ETB von selbst über den Schema-Banner in der Sidebar — der Admin sieht dort den Direkt-Link hierher.

Was die Seite zeigt

Oben steht eine Status-Zeile mit vier Zahlen: Tabellen vorhanden, Tabellen fehlen, Spalten veraltet und Tabellen im Code definiert. Darunter erscheinen je nach Befund eigene Karten:

  • Veraltete Spalten-Definitionen — eine Spalte in der DB stimmt nicht mehr mit dem Code überein. Typischer Fall: eine ENUM-Spalte (z. B. users.role), die einen neuen Wert noch nicht kennt, sodass das Feld beim Speichern leer bleibt.
  • Fehlende Tabellen — Tabellen, die der Code erwartet, aber in der DB noch nicht existieren.
  • Schema vollständig — alles da; hier kannst Du trotzdem die Indizes nochmal prüfen lassen (idempotent, legt nichts Neues an).

Ganz unten listet die Seite alle Tabellen des Code-Schemas auf — vorhandene unauffällig, fehlende hervorgehoben.

Reparieren

Je nach Befund steht ein Button bereit („Fehlende Tabellen jetzt anlegen", „Spalten jetzt migrieren" oder „Indizes nochmal prüfen"). Nach der Bestätigung erledigt der Schema-Check alles Nötige in einem Rutsch:

  1. fehlende Tabellen anlegen (CREATE TABLE IF NOT EXISTS — bestehende bleiben unangetastet; z. B. die Rollen-Angebote des Alarm-Knopfs),
  2. fehlende Indizes nachziehen,
  3. veraltete Spalten migrieren (z. B. ENUM erweitern),
  4. fehlende Default-Daten ergänzen (z. B. Status-Stufen, Rollen-Rechte, die UW-ERSTALARM-Regel),
  5. einmalige Daten-Korrekturen ausführen — z. B. alte Einsatzkräfte-Stärkewerte auf das Schema A/B/C/S normalisieren (damit die Gesamtzahl überall zur Summe der drei Positionen passt), die Suffix-Spalten für das Adress-Suffix je Ort anlegen oder die Schwerpunkt-Status-Labels von „Geschlossen"/„Archiviert" auf „Erledigt"/„Abgeschlossen" umbenennen (nur unveränderte Werks-Labels; selbst angepasste bleiben unberührt).

Eine Erfolgsmeldung fasst zusammen, was angelegt, ergänzt oder migriert wurde; eigene Karten listen die Details.

⚠️ Hatte ein Benutzer durch eine veraltete ENUM-Spalte eine leere Rolle bekommen (sah aus wie „nicht übernommen"), repariert die Spalten-Migration das nicht automatisch — die Rolle danach unter Admin → Benutzer nachpflegen.

ℹ️ Reparieren darf nur, wer das Recht admin.config hat. Bestehende Daten bleiben bei allen Schritten erhalten.

Was als nächstes?