Qu’est ce que ce problème de UNQ_BY_CUSTOMER lors de la migration Magento 1.6 ?

Lors des migrations des boutiques Magento vers la version 1.6, l’erreur suivante survient régulièrement :

Error in file: /app/code/core/Mage/Customer/sql/customer_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php” – SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘0-1487’ for key ‘UNQ_BY_CUSTOMER‘

Ceci est provoqué par des problèmes de contraintes d’intégrité dans la base MySQL. Pour le résoudre, il faut aller modifier le fichier app/etc/config.xml :

 <initStatements>SET NAMES utf8</initStatements>

devient :

<initStatements>SET NAMES utf8; SET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0;</initStatements>

Vous pouvez remettre le fichier à son état initial lorsque la migration est terminée.

Si le problème persiste, n’hésitez pas à rafraîchir la page d’accueil plusieurs fois afin de relancer le traitement de mise à jour. Au bout de 2 ou 3 essais, le script devrait passer.