-- Migration: vanillaAvailable (boolean) → availableIn (VARCHAR enum) -- -- BDSM_AND_VANILLA = ehemals vanilla_available = TRUE -- BDSM_ONLY = ehemals vanilla_available = FALSE (Default) -- CHASTITY_ONLY = neuer Wert -- -- Die Prozedur prüft zuerst, ob vanilla_available noch existiert, bevor -- sie etwas tut – dadurch ist die Migration auf leeren Datenbanken ein No-op. DROP PROCEDURE IF EXISTS proc_migrate_available_in; CREATE PROCEDURE proc_migrate_available_in() BEGIN DECLARE col_exists INT DEFAULT 0; SELECT COUNT(*) INTO col_exists FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'aufgaben_gruppe' AND COLUMN_NAME = 'vanilla_available'; IF col_exists > 0 THEN ALTER TABLE aufgaben_gruppe ADD COLUMN available_in VARCHAR(50) NOT NULL DEFAULT 'BDSM_ONLY'; UPDATE aufgaben_gruppe SET available_in = 'BDSM_AND_VANILLA' WHERE vanilla_available = 1; ALTER TABLE aufgaben_gruppe DROP COLUMN vanilla_available; END IF; END; CALL proc_migrate_available_in(); DROP PROCEDURE IF EXISTS proc_migrate_available_in;