32 lines
1.6 KiB
SQL
32 lines
1.6 KiB
SQL
-- 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);
|