web-dev-qa-db-fra.com

Mettez simplement mon site à niveau vers la version 1.9.3.0 et obtenez l'erreur SQLSTATE [42S22]: Colonne introuvable: 1054 Colonne inconnue 'catalog_product_entity_group_price.is_percent'

Avant d’utiliser Magento 1.9.2.4, j’ai reçu aujourd’hui un message indiquant que je devais mettre à niveau mon magento avec les dernières mises à jour critiques.

Après la mise à niveau de mon site Web à partir de la section téléchargeur, tout s'est bien passé, aucune erreur, etc, deux choses se passent que je remarque après la mise à jour que ma permission index.php a été modifiée en 666 Le site Web s'ouvre correctement page d'erreur avec les informations suivantes.

Une erreur s'est produite lors du traitement de votre demande.

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_entity_group_price.is_percent' in 'field list', query was: SELECT `catalog_product_entity_group_price`.`value_id` AS `price_id`, `catalog_product_entity_group_price`.`website_id`, `catalog_product_entity_group_price`.`all_groups`, `catalog_product_entity_group_price`.`customer_group_id` AS `cust_group`, `catalog_product_entity_group_price`.`value` AS `price`, `catalog_product_entity_group_price`.`is_percent` FROM `catalog_product_entity_group_price` WHERE (entity_id='84') AND (website_id = 0)

Trace:
    #0 /home/MyWebsite/public_html/app/Mage.php(463): Mage_Core_Model_Config->getModelInstance('eav/entity_attr...', 'SQLSTATE[42S22]...')

   #1 /home/MyWebsite/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php(661): Mage::getModel('eav/entity_attr...', 'SQLSTATE[42S22]...')
   #2 /home/MyWebsite/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php(1641): Mage_Eav_Model_Entity_Abstract->walkAttributes('backend/afterLo...', Arr

Je ne sais pas comment revenir en arrière parce que je n’ai pas obtenu de sauvegarde car ils disent qu’elle est stable ou incapable de résoudre cette erreur.

Merci d'avance

17
Naveed

Supprimer le contenu de var/cache/

Pour l'avenir, pensez à désactiver le compilateur, tous les index et tous les caches avant d'effectuer une mise à jour.

En réalité, le cache de configuration est toujours actif et empêche Magento de détecter que des modifications de la base de données sont nécessaires.

35
Ext3h

Le problème est dû à une colonne manquante nommée: is_percent dans la table catalog_product_entity_group_price

Magento 1.9.3 inclut un fichier de mise à niveau qui crée cette colonne dans la base de données. Le fichier se trouve ici: app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.4-1.6.0.0.19.1.5.php

Lorsque le cache est activé, le programme d’installation ne peut pas exécuter le script de mise à niveau, ce qui provoque l’erreur signalée par l’opérateur. Une autre cause possible d'un script de mise à niveau ayant échoué est si vous actualisez le frontend ou le backend avant que tous les fichiers aient été téléchargés via FTP.

Si vider le cache ne résout pas le problème (veillez à actualiser tout cache externe comme Redis), vous pouvez essayer les solutions suivantes:

1) Ouvrez la table core_resource

2) Localisez la ligne catalog_setup

3) Si la valeur actuelle de version et data_versions est: 1.6.0.0.19.1.5, remplacez les deux valeurs par 1.6.0.0.19.1.2 et actualisez une page de l'interface.

Cela forcera Magento à réexécuter le script de mise à niveau et à créer la colonne manquante dans la base de données. 

Si la valeur pour version et version_données est 1.6.0.0.19.1.2, vous ne videz pas correctement le cache.

14
Daniel Kratohvil

Supprimer tous les fichiers/dossiers du chemin des dossiers "var/cache /"

Et assurez-vous que vous avez désactivé la mise en cache avant de démarrer la mise à niveau.

3
naveenos

Pour moi, le problème était le cache Redis. Si vous ne savez pas si Redis est activé, vérifiez votre fichier app/etc/local.xml.

Pour vider le cache Redis:

redis-cli flushall 

Cela a fonctionné pour moi.

2
tgrafixx

Assurez-vous que la table existe.

Cochez cette table (sales_bestsellers_aggregated_yearly) lorsque la colonne 'product_type_id' y figure. Si la colonne 'product_type_id' est dans la table, réindexez et actualisez le cache. Si la colonne 'product_type_id' n'est pas dans cette table, vous devez créer la structure comme l'image attachée.

 Database view sales_bestsellers_aggregated_yearly

0
TonkBerlin