-- migration_fix_uniq_cell.sql -- Corrige la contrainte unique de la table `cells` pour inclure l'eNB/RNC -- (sub_id2), evitant les faux positifs de duplication quand deux eNB -- differents partagent par coincidence le meme Cell ID + area_code. -- -- Erreur corrigee : -- SQLSTATE[23000]: Integrity constraint violation: 1062 -- Duplicate entry 'xxx' for key 'uniq_cell' -- -- A executer sur la base de production avant de redeployer edit_site.php -- si celui-ci permet desormais d'ajouter des cellules a un eNB different -- partageant un Cell ID deja utilise ailleurs. -- 1) Verification prealable : recherche de vrais doublons (meme eNB, meme -- Cell ID, meme area_code) qui bloqueraient la creation du nouvel index. -- Si cette requete renvoie des lignes, il faut les corriger/supprimer -- manuellement AVANT d'executer l'ALTER TABLE ci-dessous. SELECT tech, mcc, mnc, sub_id2, cell_id, area_code, COUNT(*) AS doublons FROM cells GROUP BY tech, mcc, mnc, sub_id2, cell_id, area_code HAVING COUNT(*) > 1; -- 2) Si la requete ci-dessus ne renvoie aucune ligne, appliquer la migration : ALTER TABLE cells DROP INDEX uniq_cell; ALTER TABLE cells ADD UNIQUE KEY uniq_cell (tech, mcc, mnc, sub_id2, cell_id, area_code); -- 3) Meme correction sur staging_cells si une contrainte equivalente y existe, -- pour eviter le meme blocage lors de l'import initial (avant validation). -- Decommentez si applicable a votre schema : -- ALTER TABLE staging_cells DROP INDEX uniq_cell; -- ALTER TABLE staging_cells ADD UNIQUE KEY uniq_cell (tech, mcc, mnc, sub_id2, cell_id, area_code);