Lors d’une mise à jour de GLPI, j’ai du migrer manuellement plus de 300 tables de MyISAM à InnoDB.
Voici un petit script rapide en PHP permettant de faire cette modification automatiquement :
<?php try { $bdd = new PDO('mysql:host=localhost;dbname=glpi;charset=utf8', 'glpi', 'glpipassword'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $response = $bdd->query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'glpi' AND ENGINE = 'MyISAM'"); while($data = $response->fetch()) { $base = $data['TABLE_NAME']; $bdd->exec("ALTER TABLE $base ENGINE=INNODB"); } $reponse->closeCursor(); ?>
Remplacez les paramètres de connexion ainsi que le nom de la base dans la première requête et laissez tourner le script.
php script.php
Ce script est bien sur réversible en modifier les types de moteurs.