-- Migration pour supporter les usernames UTF-8 avec jusqu'à 30 caractères -- Date : 2025-01-17 -- Objectif : Permettre des usernames plus souples (émojis, accents, espaces, etc.) -- IMPORTANT : Faire une sauvegarde avant d'exécuter ce script ! -- mysqldump -u root -p geo_app > backup_geo_app_$(date +%Y%m%d).sql -- Augmenter la taille de la colonne encrypted_user_name pour supporter -- les usernames UTF-8 de 30 caractères maximum une fois chiffrés -- Un username de 30 caractères UTF-8 peut faire jusqu'à 120 octets -- Après chiffrement AES-256-CBC + base64, cela peut atteindre ~200 caractères ALTER TABLE `users` MODIFY COLUMN `encrypted_user_name` varchar(255) DEFAULT '' COMMENT 'Username chiffré - Supporte UTF-8 30 caractères maximum'; -- Vérifier que la modification a bien été appliquée SELECT COLUMN_NAME, COLUMN_TYPE, CHARACTER_MAXIMUM_LENGTH, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'users' AND COLUMN_NAME = 'encrypted_user_name'; -- Note : Les nouvelles règles de validation des usernames sont : -- - Minimum : 8 caractères UTF-8 -- - Maximum : 30 caractères UTF-8 -- - Accepte TOUS les caractères (lettres, chiffres, espaces, émojis, accents, etc.) -- - Trim automatique des espaces en début/fin -- - Unicité vérifiée dans toute la base