Resolvendo problema do GLPI: Tabelas não migradas para o mecanismo InnoDB

A partir do GLPI 9.3 alterou seu mecanismo de armazenamento para InnoDB buscando sempre melhorar e otimizar suas funcionalidades, e o GLPI encontrou, o banco de dados precisa ser migrado para funcionar corretamente e não haver problemas de incompatibilidade, o GLPI pelo menos até a versão 9.4.3 não está realizando essa migração automaticamente quando há alguma alteração (Exemplo instalando algum plugin).

O Script vem junto na 9.3 na pasta scripts do glpi, porém na versão 9.4.3 não veio o script junto para execução e correção do aviso, vou deixar o script em anexo nessa postagem para a versão que não tiver, coloque na pasta raiz do glpi/scripts, e execute com o comando abaixo para resolver a mensagem “Número x de tabelas não migradas para o mecanismo InnoDB“. 

# php /var/www/scripts/innodb_migration.php

Obs: Caso a sua aplicação GLPI não esteja em um máquina que você possua acesso direto ao terminal, poderá entrar em contato com o seu provedor como executar o script.

Conteúdo do innodb_migration.php

<?php
chdir(__DIR__);

$args = [];
if (isset($_SERVER['argv'])) {
   for ($i=1; $i<count($_SERVER['argv']); $i++) {
      $it           = explode("=", $argv[$i], 2);
      $it[0]        = preg_replace('/^--/', '', $it[0]);
      $args[$it[0]] = (isset($it[1]) ? $it[1] : true);
   }
}

if (isset($args['config-dir'])) {
   define("GLPI_CONFIG_DIR", $args['config-dir']);
}

include ('../inc/includes.php');

$tomigrate = $DB->getMyIsamTables();
echo "Tables found: ".count($tomigrate)."\n";

while ($table = $tomigrate->next()) {
   echo "Migrating {$table['TABLE_NAME']}...";
   $DB->queryOrDie("ALTER TABLE {$table['TABLE_NAME']} ENGINE = InnoDB");
   echo " Done.\n";
}

Deixe uma resposta