Poesía Binaria

Borrar la caché de Magento desde la línea de comandos

Foto: Steve Jurvetson (Flickr CC)

Cuando estás haciendo muchos cambios en una instalación de Magento, debes borrar la caché a menudo. Un caso especial es si utilizas scripts periódicos para actualizar listas de precios o stock, en ese caso debes programar también el borrado de cachés.

Este pequeño script ha sido visto en muchas webs por lo que no me extenderé mucho y mencionaré dos fuentes donde podéis consultarlo (os invito a visitar estas páginas porque amplían la información que veis aquí).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
echo "Start Cleaning all caches at ... " . date("Y-m-d H:i:s") . "\n\n";
ini_set("display_errors", 1);

require '../app/Mage.php';
Mage::app('admin')->setUseSessionInUrl(false);
Mage::getConfig()->init();

$types = Mage::app()->getCacheInstance()->getTypes();

try {
    echo "Cleaning data cache... \n";
    flush();
    foreach ($types as $type => $data) {
        echo "Removing $type ... ";
        echo Mage::app()->getCacheInstance()->clean($data["tags"]) ? "Cache cleared!" : "There is some error!";
        echo "\n";
    }
} catch (exception $e) {
    die("[ERROR:" . $e->getMessage() . "]");
}

Aquí veremos un listado de tipos de caché que estamos utilizando en nuestra instalación y se van limpiando.

Si queremos borrar la caché de JS y CSS bastaría con llamar a (debemos asegurarnos de que el usuario que ejecuta el script (si es distinto al que procesa la web) tiene permisos para escribir en la carpeta de caché:

1
2
3
<?php
    Mage::getModel('core/design_package')->cleanMergedJsCss();
    Mage::dispatchEvent('clean_media_cache_after');

Ya podemos llamar al script desde la línea de comandos, por ejemplo, o programarlo como tarea cron.

Visto en:
Yameveo | Flush every Magento cache from the command line
Magento: Clear all caches from command line

También podría interesarte....