Archives quotidiennes :

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.