PrestaShop ≤ 1.6 : nettoyez votre base de données !

PrestaShop : nettoyez votre base de données !

Expérience de déplantage récente avec le CMS PrestaShop chez OVH. Une boutique non entretenue depuis 2022 à planté car la base de données était saturée.

Mettre à jour progressivement PrestaShop est un gage de pérennité

C’est un classique des CMS, sur une boutique, on peut se dire que « si tout fonctionne, je ne touche à rien » est la bonne démarche, pourquoi ce compliquer la vie en effet., c’est pas la bonne démarche. Le concept de CMS, surtout de nos jours avec l’IA, est un incessant ballet de mises à jours pour combler les failles internes au CMS et aux extensions ou thèmes utilisés.

Ne passez pas outre cette pratique, une boutique doit impérativement être clonée sur un site de développement qui sert à tester les mises à jours, les déploiement d’extensions, etc.

PrestaShop sans entretien ça finit toujours mal (comme tout CMS)

La boutique impactée avait été mise à niveau côté design en 2022 mais sans mise à niveau du CMS. Cette année-la PrestaShop était en v1.7.8.3 (janvier) et à fini en v1.7.8.8 (décembre). Rester en v1.6.1.10 n’était pas le bon choix. En parallèle la future version 8.0 était disponible pour tests.

PrestaShop : une base de données qui peut devenir énorme sur une petite boutique

En effet avec le temps, les tables de statistiques, de logs et de paniers abandonnés alourdissent la base. Dans mon expérience le site affichait ce message en page d’accueil :

[PrestaShopDatabaseException]
INSERT command denied to user 'xxxxxxxxx@.18.150.47.52' for table 'ps_guest'

En réalité cela correspond à une erreur 500. Le message d’erreur est plus complet que ça, j’ai fait des recherches et j’ai vite trouvé des sujets qui pointaient pratiquement tous vers la saturation de la base de données ou de l’espace hébergeur.

N’ayant pas l’historique de cette boutique, autre que la dernière refonte visuelle, mais sachant qu’aucun suivi technique n’était fait, je me suis rendu dans :
cPanel OVH -> Base de données -> la ligne la base en question -> PHPMyAdmin (menu 3 points).

PrestaShop : une base de données de plus de 2,7 Go

L’offre OVH semble bien dimensionnée mais elle propose 20 bases de données à 2 Go maxi sans possibilité d’en avoir moins mais de plus grande capacité. Résultat avec 2 Go autorisé on avait plus de 2,7 Go utilisés…

PrestaShop : une communauté très réactive – Merci à eux

Face à ce dilemme j’ai cherché comment « dégraisser » cette base de données, il s’avère que cette version (est affiliées) de PrestaShop est connue pour surcharger certaines tables avec des données historiques :

• ps_connections
• ps_connections_page
• ps_connections_source
• ps_guest
• ps_pagenotfound (optionnel, pour les erreurs 404 accumulées)

Après connexion à PHPMyAdmin j’ai trouvé 2 tables énormes : ps_connections et ps_guest qui pesaient 1,3 Go chacune !

PrestaShop : nettoyer la base de données avec SQL

Voici les requêtes à lancer pour nettoyer les tables qui peuvent être très surchargées :

TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_page;
TRUNCATE TABLE ps_connections_source;
TRUNCATE TABLE ps_guest;
TRUNCATE TABLE ps_pagenotfound;

Il faut noter que dans mon cas les commandes sont passées très vites (1 à 2 secondes pour toute la série). Par contre cela ne débloque pas le site, il faut penser à aller dans le cPanel -> Section hébergement et cliquer sur « Rafraichir le quota » pour que tout soit effectif.

À partir de là le site est enfin revenu en ligne.

La base de données nettoyée pèse 57,4 Mo !!

SI vous rencontrez ce souci sur une version ancienne de PrestaShop vous saurez ce qu’il faut faire.

PrestaShop : des outils d’entretien et des réglage salutaires

Vous pouvez automatiser le nettoyage de la base de données, en utilisant des modules dédiés à cela (tels que Prestashop Database Cleaner Module ou Database Cleanup) pour programmer des purges régulières.

Vous avez de nombreuses informations sur cet article chez Cyberial.fr.

Sources : GitHub versions PrestaShop, Alexandre Carette, Cyberial.

Vous aimerez aussi

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Autres catégories du Blog

Partager cette publication