Récemment


Duplicate entry '10-0-1' for key 'PRIMARY' INSERT INTO `pss_hook_module` (`id_module`, `id_shop`, `id_hook`, `position`)



  • Lors que j'active mon thème j'ai cette erreur

    Duplicate entry '10-0-1' for key 'PRIMARY' INSERT INTO pss_hook_module (id_module, id_shop, id_hook, position) VALUES (10, 1, 0, 1)



  • C'est un problème assez courant, principalement sur les boutiques migrées ou ayant souffert lors de mise à jour de modules n'opérant pas de manière approprié.
    La cause est qu'un hook (point d'accroche) auquel se réfère un module n'existe pas ou partiellement dans la table des hooks.

    Pour corriger il y a plusieurs méthodes.

    • méthode nécessitant un accès à la base de donnée:
      • trouver le module ayant l'id 10 (premier id de l'erreur)
        select name from ps_module where id_module = 10;

    • si le module a peu d'impact visuel ou qu'il est facile de retrouver sa config et sa position dans le visual, le **reinitialiser. **Cela va reconstruire les hooks de ce dernier et résoudre le problème.
      Attention un train peut en cacher un autre, donc la même erreur mais avec un id_module different peut apparaitre ensuite.

    • si pas possible de réinitialiser, il faut alors lire le code du module afin de trouver la liste des hooks qui le concerne pour ensuite, aller corriger manuellement dans la base de données les tables ps_hook et/ou ps_hook_alias (fastidieux et nécessite pas mal de connaissance).

    • méthode rapide très lente et faisant perdre toutes les configs et les positions de tous les modules (effet sur le rendu FrontOffice) donc déconseillée - réinitialiser tous les modules. Je conseille de commencer pas les modules hooké au point d'accroche header (displayHeader), en faire un à la fois et vérifier que le problème soit résolu.

    Dans tous les cas cette erreur est le reflet d'un base de données ayant des problèmes d'incohérences - envisager de faire un audit dessus pour identifier d'autres terrains minés


Se connecter pour répondre