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/)
    Jeff71 aime ceci.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

  • #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
    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)
        Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
        Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

        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 - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          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, 17h48
            Christophe (cavo789)
            Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
            Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

            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)
                  Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                  Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                  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 !



                      En tout cas bravo pour ton extension.

                      Commentaire


                      • #12
                        Merci beaucoup pour ce module. Je galérais beaucoup avec la mise à jour de Acymailing V5 pour passer en V7, chaque fois cela faisait planter mon site.
                        Avec ce module, j'ai pu supprimer tous les fichiers _acym_ et installer la V7 sans problème.

                        Commentaire


                        • #13
                          Avec plaisir rb1jlo.
                          Christophe (cavo789)
                          Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                          Commentaire


                          • #14
                            Bonjour

                            je teste actuellement kill_db_tables.php (site sous joomla 4.x et php 8.1)

                            Si le script me liste bien toutes les tables, le filtre des anciennes tables fonctionne également, mais je ne trouve pas le moyen de supprimer les tables filtrées (à supprimer). Pas de bouton "kill selected table"

                            Merci
                            Cordialement,
                            carabao

                            Site dédié à la caravane & au camping: www.caravane-camping.be

                            Commentaire


                            • #15
                              Hello

                              J'ai écris ce script il y a une dizaine d'années, publiée sur github il y a six ans... C'est très loin pour moi ;-)

                              Sur ma capture d'écran (https://github.com/cavo789/joomla_fr...kill_db_tables), on voit le bouton "2. Kill selected tables"; tu écris donc que tu ne vois pas ce bouton en haut de la page ?

                              [Edit]Je viens d'installer un Joomla 4.2.3 sur un PHP 8 et tout me semble OK; voir image ci-dessous[/Edit]

                              Kill selected tables
                              Dernière édition par cavo789 à 02/11/2022, 20h26
                              Christophe (cavo789)
                              Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                              Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X