Convertir vos tables MyISAM en InnoDB

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.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.