-- PS_Launcher schema v2 -- Ajoute deux flags par-license : -- * channel : nom du manifest à servir (NULL = default = manifest/versions.json) -- * can_see_betas : autorise la license à voir les versions taggées isBeta=true -- -- À jouer après 001_init.sql. -- -- IDEMPOTENCE : OVH mutualisé peut tourner sur MariaDB pré-10.0.2 où -- ALTER TABLE ... IF NOT EXISTS n'existe pas. On contourne avec une PROCEDURE -- temporaire qui consulte INFORMATION_SCHEMA avant chaque ALTER. Comme ça la -- migration peut être re-jouée sans erreur sur n'importe quelle version -- MariaDB / MySQL 5.5+. DROP PROCEDURE IF EXISTS ps_launcher_migrate_002; DELIMITER $$ CREATE PROCEDURE ps_launcher_migrate_002() BEGIN -- channel IF NOT EXISTS ( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'licenses' AND COLUMN_NAME = 'channel' ) THEN ALTER TABLE licenses ADD COLUMN channel VARCHAR(64) NULL AFTER max_machines; END IF; -- can_see_betas IF NOT EXISTS ( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'licenses' AND COLUMN_NAME = 'can_see_betas' ) THEN ALTER TABLE licenses ADD COLUMN can_see_betas TINYINT(1) NOT NULL DEFAULT 0 AFTER channel; END IF; -- index sur channel (une simple recherche bénéficie peu mais c'est pas cher) IF NOT EXISTS ( SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'licenses' AND INDEX_NAME = 'idx_channel' ) THEN ALTER TABLE licenses ADD INDEX idx_channel (channel); END IF; END $$ DELIMITER ; CALL ps_launcher_migrate_002(); DROP PROCEDURE ps_launcher_migrate_002; -- Note : pas de migration de data. Les licenses existantes gardent -- channel = NULL (= manifest default) et can_see_betas = 0 (= pas d'accès aux betas). -- L'admin attribue manuellement les flags via la page licenses.php.