-- Migration 090: Add 'Abschnittssachbearbeiter' and remove non-existent ranks -- (Feuerwehranwärter, Feuerwehrfrau variants, Brandoberinspektor, Brandamtmann) -- from the mitglieder_profile dienstgrad CHECK constraint. -- Null out any existing rows with ranks that are being removed UPDATE mitglieder_profile SET dienstgrad = NULL WHERE dienstgrad IN ( 'Feuerwehranwärter', 'Feuerwehrfrau', 'Oberfeuerwehrfrau', 'Hauptfeuerwehrfrau', 'Brandoberinspektor', 'Brandamtmann', 'Ehren-Feuerwehrfrau', 'Ehren-Oberfeuerwehrfrau', 'Ehren-Hauptfeuerwehrfrau', 'Ehren-Brandoberinspektor', 'Ehren-Brandamtmann' ); ALTER TABLE mitglieder_profile DROP CONSTRAINT IF EXISTS mitglieder_profile_dienstgrad_check; ALTER TABLE mitglieder_profile ADD CONSTRAINT mitglieder_profile_dienstgrad_check CHECK (dienstgrad IS NULL OR dienstgrad IN ( -- Standard Dienstgrade 'Jugendfeuerwehrmann', 'Probefeuerwehrmann', 'Feuerwehrmann', 'Oberfeuerwehrmann', 'Hauptfeuerwehrmann', 'Löschmeister', 'Oberlöschmeister', 'Hauptlöschmeister', 'Brandmeister', 'Oberbrandmeister', 'Hauptbrandmeister', 'Brandinspektor', 'Oberbrandinspektor', 'Verwaltungsmeister', 'Oberverwaltungsmeister', 'Hauptverwaltungsmeister', 'Verwalter', 'Sachbearbeiter', 'Abschnittssachbearbeiter', -- Ehrendienstgrade 'Ehren-Feuerwehrmann', 'Ehren-Oberfeuerwehrmann', 'Ehren-Hauptfeuerwehrmann', 'Ehren-Löschmeister', 'Ehren-Oberlöschmeister', 'Ehren-Hauptlöschmeister', 'Ehren-Brandmeister', 'Ehren-Oberbrandmeister', 'Ehren-Hauptbrandmeister', 'Ehren-Brandinspektor', 'Ehren-Oberbrandinspektor', 'Ehren-Verwaltungsmeister', 'Ehren-Oberverwaltungsmeister', 'Ehren-Hauptverwaltungsmeister', 'Ehren-Verwalter', 'Ehren-Sachbearbeiter', 'Ehren-Abschnittssachbearbeiter' ));