Realizar el reindexado por programación


Notice: Undefined variable: post in /furanet/sites/diegomestre.com/web/htdocs/wp-content/themes/docpress/functions.php on line 294

Notice: Trying to get property of non-object in /furanet/sites/diegomestre.com/web/htdocs/wp-content/themes/docpress/functions.php on line 294

Realizar el reindexado por programación

Una cosa que a veces nos ha traido de cabeza es cuando por algún motivo no es posible realizar el reindexado desde la consola como debería ser lo más habitual. En ocasiones quedan bloqueados, a veces dan algún error, etc… y necesitamos hacerlo vía código. Es muy fácil

En primer lugar, lo que hemos de hacer es desbloquear los índices. Para ello debemos ir a la carpeta /var/lock donde borraremos los archivos .lock que bloquean el proceso de reindexado. Cuidado ya que si hay algún proceso de indexado en marcha lo fastidiaríamos, usad esto sólo cuando la reindexación se ha quedado enganchada y no podéis seguir.

Una vez hecho esto podéis generar un script muy sencillo para indexar cualquiera de vuestros índices. Propongo dos métodos:

En este primero indexamos únicamente uno de ellos, en el ejemplo el catalog_product_flat

require_once 'app/Mage.php';  //O la ruta donde tengas tu archivo Mage.php
Mage :: app("default"); 
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat');
$process->reindexAll();

En este segundo ejemplo reindexamos todos los índices en un bucle, tras obtenerlos con el método getProcessesCollection()

$indexingProcesses = Mage::getSingleton('index/indexer')->getProcessesCollection(); 
foreach ($indexingProcesses as $process) {
    $process->reindexEverything();
}

Así de fácil es, espero que estos scripts te sirvan para sacarte de algún problema :)

Escribe tu comentario

comentarios

Speak Your Mind

*