Quelltext des aktuellen Standes
-- Migration 236: Lizenzzuordnungen – woher sie stammen
--
-- Bei Microsoft-Lizenzen steht bisher nur die Zahl der belegten Plätze
-- (`consumedUnits` aus dem Entra-Abgleich). Wer einen Platz hält, wird in
-- `license_assignments` geführt – aber nur, wenn es jemand von Hand einträgt.
--
-- Damit der Abgleich das übernehmen kann, muss er seine eigenen Zeilen von
-- denen unterscheiden können, die jemand gepflegt hat: Er ersetzt seinen
-- Bestand bei jedem Lauf, und eine von Hand gesetzte Zuordnung darf dabei
-- nicht verschwinden.
ALTER TABLE `license_assignments`
ADD COLUMN `source` ENUM('manual','entra') NOT NULL DEFAULT 'manual'
COMMENT 'Woher die Zuordnung stammt; der Abgleich fasst nur eigene Zeilen an';
-- Der Abgleich sucht seine Zeilen über Lizenz und Herkunft.
ALTER TABLE `license_assignments`
ADD INDEX `idx_la_source` (`source`, `license_id`);
-- Bestehende Zeilen sind von Hand entstanden – das ist bereits der
-- Spaltenvorgabewert, hier nur der Vollständigkeit halber festgehalten.
UPDATE `license_assignments` SET `source` = 'manual' WHERE `source` IS NULL;