Programar copias de seguridad de la base de datos en Prestashop

Como bien sabemos muchos, podemos hacer copias de seguridad de la base de datos de forma manual, desde el panel de administración en la pestaña Parámetros Avanzados -> Copia BD

¿Pero cómo podemos programar estas copias de seguridad de la base de datos en Prestashop para que sean automáticas?

Disponemos de un aporte desarrollado por el usuario Captain FLAM de la Comunidad de Prestashop

El aporte, es un fichero denominado “cron_database_backup.php” con el siguiente contenido:

<?php
if (!defined('_PS_ADMIN_DIR_')) {
define('_PS_ADMIN_DIR_', getcwd());
}
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
include(_PS_ADMIN_DIR_.'/../classes/PrestaShopBackup.php');
if (isset($_GET['secure_key'])) {
$secureKey = md5(_COOKIE_KEY_.Configuration::get('PS_SHOP_NAME'));
if (!empty($secureKey) && $secureKey === $_GET['secure_key']) {
$shop_ids = Shop::getCompleteListOfShopsID();
foreach ($shop_ids as $shop_id) {
Shop::setContext(Shop::CONTEXT_SHOP, (int)$shop_id);
$back = new PrestaShopBackup();
$back->add();
}

Si nos ponemos a analizar el código, aquí la clave es el siguiente código:

$back = new PrestaShopBackup();
$back->add();

Creamos un objeto de la clase PrestaShopBackup y ejecutamos la función “add” de dicha clase, de esta manera generamos una copia de seguridad. El fichero “cron_database_backup.php” lo guardamos en el directorio (carpeta) de administración de tu tienda, es decir si accedes al panel de tu tienda con la siguiente dirección:

https://victor-rodenas.com/administración/ 

Lo guardamos dentro de la carpeta /administración/

Por último, nos falta añadir la siguiente URL al Cron:

https://victor-rodenas.com/administración/cron_database_backup.php?secure_key=CLAVE

En referencia a la CLAVE, por ejemplo, si nos vamos al panel de administración en la pestaña Localización -> Monedas, podemos obtenerla de otra URL que tengamos.

El siguiente paso, es pegar nuestra dirección:

https://victor-rodenas.com/administración/cron_database_backup.php?secure_key=CLAVE 

En la pestaña módulos -> módulos dentro de la configuración del módulo  “Gestor de tareas cron (cronjobs)

Accediendo a la configuración del módulo para automatizar tareas en Prestashop

Y en su configuración, añadimos la dirección que hemos comentado:

Añadiendo regla a CRON en Prestashop

¿Dónde puedo descargar el aporte, preguntar dudas y ver los posibles errores?

  • https://www.prestashop.com/forums/topic/613661-sauvegarde-automatique-de-la-base-de-donn%C3%A9es-avec-le-module-cron/
  • https://www.prestashop.com/forums/topic/613659-auto-database-backup-with-cron-module/

Documento realizado bajo Prestashop 1.6.1.14 y la versión “0.0” del aporte.