Jump to content

Lancer une mise à jour mineure de la version 16


Recommended Posts

Bonjour,

J'ai une question très bête mais bloquante : je souhaite lancer une mise à jour mineure, entre la version 16.0.6 que j'utilise et la dernière version 16.1.23 que j'ai téléchargée. 

En fait, j'ai rencontré un bug majeur au niveau de la table PS_PRODUCT_DOWNLOAD pour les produits virtuels (écriture automatique de millions de lignes dans la table dont le poids explose vite) et je suppose qu'il a été corrigé par la suite car la plupart des (nombreux) utilisateurs qui l'ont rencontré en ont parlé sur le forum entre 2013 et 2015. Ensuite, personne ne se plaignait, ce qui est bon signe...

En revanche, migrer vers la version 17.5 me fait peur au vu des mises en garde et la correction du bug m'intéresse bien plus que les nouvelles fonctions. 

De fait, avec 1-Click (ou autre), comment importer le zip de la mise à jour souhaitée (16.1.23 en l'occurrence) et la lancer, à la place de la version 17.5 proposée par défaut ?

Merci pour votre aide !

Neil

Link to comment
Share on other sites

Tu as déjà exprimé ta problématique sur la table ps_product_download sur un autre topic.

La cause étant un module tiers, et ce dernier ayant modifié structurellement ta bdd, aucune mise à jour native ne va pouvoir corriger ce problème. Pire il y a de fortes chances que la migration plante.

Tu dois corriger le problème de ton module et des enregistrement "fous" en amont de toute migration.

Link to comment
Share on other sites

Bonjour,

Merci pour vos retours. 

J'ai passé pas mal de temps à faire des recherches sur le forum pour solutionner ce maudit problème de table PS_PRODUCT_DOWNLOAD qui se remplit de millions de lignes et j'en suis arrivé à la conclusion que de nombreux utilisateurs avec les versions 15 et 16 l'avaient rencontré (messages datant surtout de 2013 à 2015).

En fait, il y a beaucoup de posts à ce sujet dans plusieurs langues en mettant avec la requête PS_PRODUCT_DOWNLOAD et je ne les avaient pas trouvés car je ne cherchais pas avec les bons mots clés ou uniquement en français. Un tel bug est difficile à cerner au début. Je pense donc que le module tiers sur les produits virtuels, en français à l'origine, n'est finalement pas en cause sans quoi il y aurait moins de personnes touchées à l'international et elles auraient évoqué cette piste.

D'où mon idée d'installer la version 16 la plus récente (novembre 2018) en me disant qu'avec un peu de chance les développeurs de Presta avaient réglé le problème en suivant le forum ou en voyant la remontée des bugs.

C'est en quelque sorte un pari que je fais car en attendant, je suis coincé et je me dis qu'une mise à jour mineure, réversible, ne devrait quand même pas mettre le site en vrac. 

 

Link to comment
Share on other sites

Regarder des problèmes de 2014 ne va pas t'aider à résoudre ton problème.

 

Depuis la 1.6.1.1 cette table contient une clé unique sur id_product

install-dev/upgrade/sql/1.6.1.0.sql:ALTER IGNORE TABLE `PREFIX_product_download` ADD UNIQUE KEY `id_product` (`id_product`);

Il est donc impossible que tu ais plusieurs fois le même produit, sauf si tu as migré, que la migration ait crashé et que tu l'ais ignoré.

 

Dans ce cas tu nettoies et reconstruit l'index

Mais la structure de ta table est différente de ce qu'elle est nativement, tu as des champs supplémentaire, notamment id_product_attribute. Ceci signifie que ta clé unique devra l'inclure à minima - ce dernier point est la cause/volonté de ton module tiers. Ramener au fonctionnement natif a toute les chance de tuer ton module

Edited by doekia (see edit history)
  • Thanks 1
Link to comment
Share on other sites

Merci Eolia pour le process de mise à jour des versions mineures. Je n'ai plus qu'à appuyer sur le bouton, après les précautions d'usage. 

Dans mon cas, comme expliqué et avec le recul, je ne pense pas ou plus que le module des produits virtuels est en cause car les autres victimes du bug ne semblaient pas l'avoir installé et je doute que les utilisateurs allemands, américains et espagnols qui étaient bloqués comme moi aient choisi pour mon module tiers en français à l'origine. 

Comme la quantité de messages à propos du bug a chuté à partir de 2015/2016, j'en déduis que le souci a été corrigé dans le code source de Presta. A tort ou à raison.

Dans tous les cas, j'ose espérer qu'une mise à jour mineure n'aurait guère d'incidence sur ma boutique, contrairement à une grosse migration.

Link to comment
Share on other sites

Doekia, j'utilise la version 16.0.6 et la clé unique à partir de la version 16.1 me laisse de l'espoir. 

Les problèmes existaient déjà avec la version 15 et j'ai dû faire partie des dernières personnes à essuyer les plâtres, d'où le volume des messages sur le forum qui a chuté à partir de 2015//2016. 

Actuellement, j'ai supprimé tous mes produits et vidé en un clic la table PS_PRODUCT_DOWNLOAD car il restait 1,4 millions de lignes après l'opération. Mon idée est donc de désactiver le module (nouvelle version achetée, dans le doute) puis de mettre à jour Prestashop vers 16.1.23 et de réinstaller le module et télécharger de nouveau les produits, en regardant comment la table PS_PRODUCT_DOWNLOAD se comporte (une ou plusieurs lignes par produit). Je croise les doigts...

Link to comment
Share on other sites

@neilerua

Fait un delete dans ps_product_download lorsque active=0

delete from PREFIX_product_download WHERE active=0 LIMIT 100000;

Plusieurs fois, jusqu'a ce que ça dise 0 record changed

Puis construis ta clé unique

ALTER IGNORE TABLE `PREFIX_product_download` ADD UNIQUE KEY `id_product` (`id_product`); 

Attention il te faut revoir tous tes produits virtuels car leur fichier download peuvent avoir changé (a cause du ignore)

Attention2: Ne fonctionne pas en MySQL  5.7+  https://dev.mysql.com/worklog/task/?id=7395

 

Edited by doekia (see edit history)
  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...