Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Astuce] Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

    Bonjour

    J'ai développé un script gratuit et Open Source nommé `kill_db_tables.php` qui permet d'afficher la liste des tables de son site Joomla!®, de filtrer la liste pour n'afficher plus que les tables qu'on aimerait supprimer et de lancer alors la suppression effective (après confirmation).

    L'exécution du script est sans danger ... jusqu'au moment où il vous est demandé si vous souhaitez réellement supprimer les tables.

    Ce script est nécessaire pour nettoyer de la base de données toutes ces tables qui restent et polluent la base de données alors même qu'on a supprimé telle et telle extension. C'est en effet assez fou de constater qu'on y trouve encore, des années après p.ex., des tables de composants qu'on avait installé puis supprimé. Toutes ces années, ces tables sont restées là, dans chaque sauvegarde de la base de données.

    (N'oubliez pas de supprimer le script après usage; un bouton est prévu à cette fin)


    Lien : https://github.com/cavo789/joomla_fr...kill_db_tables




    (d'autres scripts pour Joomla sont disponibles ici : https://github.com/cavo789/joomla_free/)
    Christophe (cavo789)
    Développeur d'aeSecure; protection, optimisation et nettoyage (après hack) de sites web Apache https://www.aesecure.com/fr
    Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes

  • #2
    Re : Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

    Merci Christophe pour tous ces outils.

    J'aime bien aussi l'outil ftp_get que tu proposes, car j'essaie d'automatiser la sauvegarde de mes sites avec un transfert automatique vers un serveur, sans avoir à passer par mon PC.

    Pascal
    JoomlaDay FR 2018 - 18/19 Mai 2018 ! J'y étais ... et vous ?

    If anything can go wrong, it will...
    If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Re : Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

      Salut
      C'est en effet assez fou de constater qu'on y trouve encore, des années après p.ex., des tables de composants qu'on avait installé puis supprimé
      En effet mais lorsque tu as des utilisateurs qui désinstallent la version actuelle pour installer la mise à jour, on comprend aisément qu'on vire le script de suppression des tables à la désinstallation
      Tu vois ce que je veux dire ?

      CEd
      Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
      http://www.template-creator.com Outil de création de templates
      Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

      Commentaire


      • #4
        Re : Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

        Tu as raison Cédric, je n'ai pas dit que c'était une erreur de la part du développeur :-)

        J'ai aussi codé un composant à une époque lointaine.

        Maintenant, dans le meilleur des mondes hein?, il faudrait pouvoir suggérer un beforeUninstall() où Joomla demanderait alors : "Est-ce une suppression définitive (=> supprimer les tables) ou est-ce avant de faire une màj (=> on garde les tables)".

        Je travaille sur une copie de mon site de production et j'ai retrouvé des tables d'un composant que j'ai désinstallé il y a trois ans. Pas top top.
        Christophe (cavo789)
        Développeur d'aeSecure; protection, optimisation et nettoyage (après hack) de sites web Apache https://www.aesecure.com/fr
        Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes

        Commentaire


        • #5
          Re : Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

          Merci Christophe pour cet utilitaire !

          Certaines extensions (je pense à sh404sef par exemple) proposent un paramétrage, par défaut désactivé, permettant de supprimer aussi les tables.
          Mais comme tu le dis, Cédric, le risque de suppression involontaire des tables peut justifier l'absence de procédure.

          Manu, en ce qui concerne le transfert de sauvegardes, utilisant Akeeba backup Pro, je transfère automatiquement mes sauvegardes après leur création vers un serveur distant, et je les récupère si besoin avec kickstart.
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide). MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

          Commentaire


          • #6
            Re : Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

            Envoyé par pmleconte Voir le message
            Merci Christophe pour tous ces outils.

            J'aime bien aussi l'outil ftp_get que tu proposes, car j'essaie d'automatiser la sauvegarde de mes sites avec un transfert automatique vers un serveur, sans avoir à passer par mon PC.

            Pascal
            Juste pour bonne lecture (et je ne doute pas que tu avais bien compris) : pour ftp_get je n'ai jamais qu'utilisé une librairie existante. J'ai "juste" écrit le script ftp_get.php car j'avais à ce moment là un ami qui s'est rendu en Afrique pour quelques jours et qui souhaitait pouvoir transférer des très gros fichiers d'un serveur FTP ber un autre sans devoir d'abord les télécharger en local (réseau très peu performant).

            C'était donc un petit challenge et un coup de main pour cet ami. 😉
            Dernière édition par cavo789 à 01/03/2017, 16h48
            Christophe (cavo789)
            Développeur d'aeSecure; protection, optimisation et nettoyage (après hack) de sites web Apache https://www.aesecure.com/fr
            Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes

            Commentaire


            • #7
              Re : Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

              Je travaille sur une copie de mon site de production et j'ai retrouvé des tables d'un composant que j'ai désinstallé il y a trois ans. Pas top top.
              c'est que tu ne vas pas assez souvent jeter un oeil à ta base de données héhé

              Maintenant, dans le meilleur des mondes hein?
              ouais ouais, comme tu dis ! j'ai pas encore trouvé la porte des étoiles y aller dans celui là...

              Je te taquine, je crois que tous les deux on sait bien ce qu'on voudrait et ce qu'il faudrait, et ce qu'on a au final. En tous cas merci pour tes partages, même si je ne les utilise pas pour l'instant, nul doute qu'ils sont utiles à d'autres. Alors bravo !
              Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
              http://www.template-creator.com Outil de création de templates
              Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

              Commentaire


              • #8
                Re : Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

                petite idée, pourquoi ne pas proposer un export de la table sous forme de fichier avant de la supprimer, permettant à l'utilisateur d'en garder un backup, au cas où. tout automatisé dans ta routine bien sur avec une sauvegarde du fichier sur le serveur pourquoi pas
                Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                http://www.template-creator.com Outil de création de templates
                Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                Commentaire


                • #9
                  Re : Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

                  Oui idée sympa... peut-être quelqu'un s'entichera du script et souhaitera y contribuer

                  Mon but n'est pas de proposer des scripts qui font "tout et plus" mais qui vise à remplir un besoin (ici, supprimer des tables).
                  La personne qui utilise un tel script est, je pense, aguérie (il faut aller sur Github, télécharger le fichier, le placer, ...) et n'est donc pas, à priori, un débutant.

                  Ensuite c'est sous sa responsabilité ;-)

                  Ces "petits" scripts (plusieurs centaines de lignes de code quand même) sont partagés avec plaisir mais je ne vais pas non plus en faire des couteaux multi-fonctions; juste remplir, agréablement et aisément, un besoin précis (supprimer des tables).
                  Christophe (cavo789)
                  Développeur d'aeSecure; protection, optimisation et nettoyage (après hack) de sites web Apache https://www.aesecure.com/fr
                  Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes

                  Commentaire


                  • #10
                    Re : Nettoyer sa base de données - Supprimer de vieilles tables inutilisées

                    ok, ta capture écran me laissait penser que c'était intégré à AEsecure
                    Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                    http://www.template-creator.com Outil de création de templates
                    Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                    Commentaire


                    • #11
                      Salut Cavo 789, superbe extension !

                      Oui c'est vrai que quelques extensions polluent la base de donnée et alourdissent inutilement celle-ci.

                      Ce problème aurait pu être évité dès le départ si les développeurs avaient créé un fichier sql nommé par exemple uninstall.mysql.sql pour la suppression de table lorsque Joomla désinstalle le composant installé. Voici le contenu du fichier:

                      Code:
                        
                       DROP TABLE IF EXISTS `#__lenomdelatable_items`;

                      Je me demande même si on ne peu pas virer carrément une base de donnée ainsi (mais bon là c'est abusé)

                      Code:
                       DROP DATABASE IF EXISTS ma_base
                      D’ailleurs, sur ce site on y explique la création d'un composant pas à pas et en français s'il vous plait !

                      http://docteurjoomla.com

                      En tout cas bravo pour ton extension.

                      Commentaire

                      Annonce

                      Réduire
                      1 sur 2 < >

                      C'est [Réglé] et on n'en parle plus ?

                      A quoi ça sert ?
                      La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                      Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                      Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                      Comment ajouter la mention [Réglé] à votre discussion ?
                      1 - Aller sur votre discussion et éditer votre premier message :


                      2 - Cliquer sur la liste déroulante Préfixe.

                      3 - Choisir le préfixe [Réglé].


                      4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                      2 sur 2 < >

                      Assistance au forum - Outil de publication d'infos de votre site

                      Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                      Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                      Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                      UTILISER À VOS PROPRES RISQUES :
                      L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                      Problèmes connus :
                      FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                      Installation :

                      1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                      Archive zip : https://github.com/AFUJ/FPA/zipball/master

                      2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                      3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                      4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                      5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                      6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                      et remplacer www. votresite .com par votre nom de domaine


                      Exemples:
                      Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                      Télécharger le script fpa-fr.php dans: /public_html/
                      Pour executer le script: http://www..com/fpa-fr.php

                      Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                      Télécharger le script fpa-fr.php dans: /public_html/cms/
                      Pour executer le script: http://www..com/cms/fpa-fr.php

                      En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                      Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                      Voir plus
                      Voir moins
                      Travaille ...
                      X