Antes que nada decir que esto está probado sobre un Prestashop 1.6 en desarrollo. Se clonó el sitio de producción y trabajó sobre el clon. Nunca realizar esto sobre un sitio en producción, siempre sobre un sitio de desarrollo (en este caso el clon).
Tenía en principio un Prestashop 1.5 que quería actualizar a la útlima versión de Prestashop (1.7.2.0). Queríamos realizar este proceso utilizando el módulo 1-Click Upgrade para que este haga la actualización de los archivos y la base de datos correctamente. Los pasos a seguir fueron:
El archivo a modificar del módulo es ruta-a-mi-tienda/modules/autoupgrade/AdminSelfUpgrade.php
La funciónes a modificar son: ajaxProcessBackupDB() y ajaxProcessBackupFiles. Linea #3662 aprox. Reemplazamos ajaxProcessBackupDB y ajaxProcessBackupFiles por:
public function ajaxProcessBackupDb() { unset($this->nextParams['backup_loop_limit']); unset($this->nextParams['backup_lines']); unset($this->nextParams['backup_table']); $this->stepDone = true; // reset dbStep at the end of this step $this->nextParams['dbStep'] = 0; $this->next_desc = sprintf($this->l('Database backup done in filename %s. Now upgrading files...'), $this->backupName); $this->next = 'upgradeFiles'; return true; } public function ajaxProcessBackupFiles() { $this->stepDone = true; $this->next = 'backupDb'; $this->next_desc = $this->l('All files saved. Now backing up database.'); return true; }
Con esta modificación se evitan los backups de archivos y base de datos y 1-click upgrade actualiza bien a Prestashop 1.7 en sitios grandes.
Es recomendable una vez que se está en Prestashop 1.7 actualizar el módulo porque estas modificaciones quedarían obsoletas (a menos que el módulo en 1.7 también falle).
No hice un debugeo a fondo, pero sospecho que falla por la cantidad de archivos a copiar. La tienda tiene mas de 1000 productos, con mas 1 una foto por producto, además hay 5 tipos de imágenes en Prestashop, por lo tanto existen un total aprox. de 10.000 archivos de imágenes como mínimo. Muchisimas imágenes para hacer backup, sospecho que por ahí viene el problema y efectivamente salteando el paso del backup el módulo funciona. No hizo falta debugear más porque la actualización a Prestashop 1.7 con 1-click upgrade funcionó.
Es una lástima que el equipo de Prestashop no deje hacer la actualización paso por paso, de esta manera se resolvería el problema sin tener que modificar el módulo. Es claro que no tienen ganas de hacer esta modificación para que tengas que comprar un módulo de migración...