Erreur d'indexation après la mise à niveau vers EE 1.14.2.0: la table catalog_product_entity_tmp_indexer n'existe pas

16

Après avoir mis à jour mon Magento vers EE 1.14.2.0, le cron enterprise_refresh_indexobtient toujours cette erreur:

exception 'PDOException' avec le message 'SQLSTATE [42S02]: table ou vue de base introuvable: 1146 La table' catalog_product_entity_tmp_indexer 'n'existe pas' dans /var/www/public_html/lib/Zend/Db/Statement/Pdo.php:228

Je ne comprends pas pourquoi cette table n'existe pas. Magento ne devrait-il pas le créer lors du processus de rafraîchissement de l'index?

Joke Puts
la source
1
Si vous avez EE, je crois que vous obtiendrez un soutien?
Richard
Oui, je pourrais l'essayer de cette façon.
Joke met
1
@Richard qui montre que vous n'avez jamais utilisé le support EE.
user487772
@TimBezhashvyly Salut Tim, non, je n'ai jamais utilisé EE non plus
Richard

Réponses:

5

Il existe un correctif Magento SUPEE-5984, qui résout ce type de problèmes d'index de rafraîchissement d'entreprise.

LearnerCurve
la source
Je n'ai pas pu trouver ce patch, si vous en avez un exemplaire, il serait très apprécié.
Henry's Cat
Veuillez contacter le support Magento à [email protected]. Je vous remercie.
LearnerCurve
1
Vous pouvez trouver le patch sur github.com/brentwpeterson/magento-patches/blob/master/EE1.14/… .
Andreas von Studnitz
5

Nous avons rencontré cette erreur après un redémarrage de la base de données en production et après une première réindexation sur un environnement de développement local, exécutant EE 1.14.2.3.

Ce qui a fonctionné pour nous était le suivant:

  1. Désactiver le catalogue de produits plats
  2. Observez que l'indexeur s'exécute correctement
  3. Activer le catalogue de produits plats
  4. Observez que l'indexeur s'exécute correctement
Aad Mathijssen
la source
1
J'ai testé cette solution de contournement et elle a semblé fonctionner pour moi, permettant au travail enterprise_refresh_index de se terminer avec succès
mttjohnson
Fonctionne aussi pour moi.
df2k2
4

Je ne peux pas encore commenter les commentaires / réponses existants, mais je peux confirmer que SUPEE-5984 semble résoudre le problème, au moins pour notre client qui a rencontré ce problème (ils ont plus d'un million de produits, donc il n'a toujours pas fini de fonctionner, mais il fonctionne maintenant ...). Nous avons ouvert un ticket avec Magento via le contrat d'assistance de notre client avec eux et Magento nous a obtenu le patch en moins d'une heure.

jvaughn
la source
1
Attention, si vous avez mis à jour vers 1.14.2.3 après le patch, vous devez à nouveau appliquer le patch car il n'est pas inclus dans la dernière version
Fabian Schmengler
Pour mémoire, dans 1.14.3, le problème semble être résolu d'une manière différente et le patch n'est plus nécessaire
Fabian Schmengler
4

Pour référence future: l'erreur ne se produit pas lorsque je rétablis le fichier app/code/core/Enterprise/Catalog/Model/Index/Action/Product/Flat/Refresh.phpdans notre version précédente 1.14.0.1.
Le nouveau paramètre $resetFlagdans la fonction _reindexsemble provoquer le problème.

Joke Puts
la source
"Génial", vient de rencontrer le même problème. J'essaierai si cela résout également notre problème.
Anna Völkl
Je peux confirmer que la restauration du fichier résout l'erreur. A fait une mise à jour de 1.14.0.1 à 1.14.2.0 et vient de créer un fichier de correctif avec le contenu modifié de Refresh.php. Suivant: contacter le support EE.
Anna Völkl
@ AnnaVölkl vous ont-ils fourni une mise à jour à ce sujet?
Sergei Guk
2
@Sergei Guk: Jusqu'à présent, je n'ai réinitialisé que le fichier et je n'ai pas demandé de support ou de patch officiel. Une mise à jour de 1.14.2.1 (peut-être résolue ici?) Est dans la file d'attente. Besoin d'enquêter plus avant quand il le faut.
Anna Völkl
1
Une mise à jour vers 1.14.2.1 ne résout pas ce problème. Le support Magento a un correctif mais je dois encore le tester.
Joke Puts
1

J'ai eu le même problème avec Magento EE 1.14.2.3, mais les solutions ci-dessus ne fonctionnaient pas pour moi. J'ai découvert que le problème était présent Enterprise_Catalog_Helper_Product::getFlatColumns. Je l'ai résolu en changeant la ligne

if ($columns !== null) {

à

if ($columns !== null && $columns !== false) {

Bien sûr: ne modifiez pas directement le fichier core, mais faites une réécriture.

Andreas von Studnitz
la source