Os dejo a continuación un pequeño checklist que solemos utilizar cuando tenemos que actualizar tiendas Magento a una nueva versión.
La lista incluye ideas tanto para trabajar durante la fase de preparación como durante la actualización del entorno de producción.
Antes de actualizar Magento
Entorno de desarrollo o instalación local
Nunca, nunca, nunca, realices el procedimiento directamente en un entorno de producción. Nunca. Trabaja previamente en un entorno de desarrollo o en tu ordenador, y realiza una copia de seguridad completa (archivos y base de datos) antes de comenzar.
Además, suele ser aconsejable asegurarse de que la copia de seguridad que has realizado funciona, y que eres capaz de restaurarla rápidamente si algo sale mal.
Auditoría de código
Sobre todo si es una tienda que no has desarrollado tu, es importante realizar un análisis previo para conocer qué extensiones están instaladas y si existen archivos del core
modificados. Así podrás tener una lista de «desarrollos no estándar» que puedan afectar al proceso o que deban ser comprobados a posteriori.
Entre los cambios realizados en el core
, nos referimos no sólo a los que alguien haya podido realizar dentro de la carpeta app/code/core
, sino también a los que se hayan podido realizar copiando archivos desde app/code/core/Mage
a app/code/local/Mage
.
En ambos casos el problema es similar:
- Si hay modificaciones en la carpeta
app/code/core
perderás esas modificaciones al realizar la actualización ya que todos los archivos se sobreescriben con la nueva versión. - Si hay modificaciones en la carpeta
app/code/local/Mage
, entonces las modificaciones se mantendrán, pero los archivos enapp/code/local
tienen preferencia sobreapp/code/core
, con lo que tras realizar la actualización, estarás trabajando con código (clases) antiguas en lugar de con los nuevos archivos que estarán enapp/code/core
.
Estas dos fornas de trabajar deben evitarse siempre que sea posible o aplicarse solo en cambios muy puntuales y controlados.
Si detectas alguna de estas situaciones, tendrás que decidir qué hacer con estos cambios. Algunas alternativas son:
- Puede que el cambio ya no sea necesario con la nueva versión de Magento. En ese caso puedes descartarlo.
- Si el cambio debe permanecer en la nueva versión, puedes trasladar la modificación a una extensión sobreescribiendo las clases de forma correcta, o puedes volver a aplicar el cambio una vez actualizado Magento (te recomendamos lo primero).
Actualización de extensiones
Para cada extensión utilizada en la tienda, comprueba que la versión instalada sea compatible con la nueva versión de Magento. Si es necesario, actualiza las extensiones.
Si las extensiones que actualizas mantienen la compatibilidad con ambas versiones de Magento (la actual y la nueva), te recomendamos realizar estas actualizaciones por separado, como una fase previa a la actualización del core
.
En el caso de que tengas alguna extensión instalada que no sea compatible con la nueva versión de Magento, deberás actualizarla o buscar una extensión alternativa.
Prueba la actualización de Magento en local
Realiza el procedimiento a continuación en primer lugar en tu entorno de desarrollo o en tu ordenador, y sólo una vez que te sientas cómodo con los problemas que surgen y sepas solucionarlos, realiza la actualización en el entorno de producción.
Si trabajas en un servidor dedicado no toques tu entorno de producción y realiza la actualización en un segundo entorno. Cuando finalices, simplemente reconfigura tu servidor para que la carpeta donde has trabajado sea tu nuevo entorno de producción.
El día de la actualización
Antes de realizar el proceso de actualización, realiza lo siguiente:
- Pon Magento en modo mantenimiento.
- Desactivar las tareas cron en tu servidor, para evitar que se activen durante la actualización.
- Desactivar aceleradores a nivel de servidor, como APC, Memcached o Varnish Caché.
- Desactiva todas las extensiones instaladas (recuerda apuntar las que están activadas).
- Elimina o renombra la carpeta
app/code/local/Mage
si existe en tu instalación de Magento (vuelve a leer el apartado auditoría de código, más arriba). - Reindexa el catálogo y refresca todas las caches.
Tras estas operaciones, comprueba que sigues pudiendo acceder a la tienda y navegar por las diferentes páginas. Si no eres capaz, muy posiblemente tu plantilla está utilizando funciones o extensiones sin comprobar si están activas, o utilizando funciones que residen en la carpeta app/code/local
.
Te recomendamos solucionar estos problemas antes de continuar. Al menos deberías conocer qué provoca el fallo y si te afectará durante la actualización.
Una vez claro lo anterior, continua con los siguientes pasos:
- Limpieza de base de datos, eliminando logs y truncando tablas innecesarias.
- Cerrar la sesión en el administrador.
- Si todo lo anterior te ha costado un cierto esfuerzo, realiza un backup de archivos y base de datos para poder continuar desde aquí en caso de que algo salga mal.
Sube la nueva versión de Magento
Antes de seguir con este paso asegúrate de lo siguiente:
- Sólo tu tienes acceso a la tienda (modo mantenimiento bloqueando al resto de IPs).
- Comprueba que los parámetros
max_execution_time
ymemory_limit
de tu servidor, son suficientemente altos. No apures los límites y para el tiempo configura al menos 1 hora. Para el límite de memoria, configura un valor cercano al límite del servidor. - Tienes una copia de seguridad válida a mano.
A continuación sube los archivos de la nueva versión de Magento a tu servidor.
Aunque el proceso se puede realizar desde Magento Connect, solemos realizar la actualización subiendo la nueva versión por FTP al servidor, o descargando el archivo con wget y descomprimiendo en la carpeta raíz de la web. Es solo una manía nuestra pero puedes hacerlo como quieras. Simplemente se trata de subir todos los archivos de la nueva versión de Magento a tu servidor.
Lanza el proceso de actualización
Una vez subidos los archivos por cualquier medio, nada más simple que acceder a cualquier página de la tienda y el proceso de actualización comenzará automáticamente.
El proceso puede tardar desde unos segundos hasta una media hora según las versiones de Magento y el número de productos existentes. Ten paciencia hasta que el proceso termine y si en algún momento se corta, actualiza la página y continuará donde se quedó.
Realiza las primeras comprobaciones
Una vez el proceso finalice,
- Actualiza la cache y todos los índices.
- Comprueba que puedes acceder a la tienda y al administrador, y que puedes navegar normalmente y hacer algún pedido.
Activa extensiones extensiones desactivadas y aceleradores
Si has llegado aquí, enhorabuena, tu Magento está actualizado y únicamente te queda comprobar que todas las extensiones y funciones a medida de tu tienda están funcionando correctamente.
Para finalizar el proceso:
- Activa de nuevo las extensiones desactivadas una por una, comprobando su funcionalidad por separado. De esa forma, si alguna falla, podrás saber cuál es la que produce el problema.
- Activa tareas cron y aceleradores de código en el servidor.
Pruebas y más pruebas
Con todo activado de nuevo, realiza pruebas, pruebas y más pruebas. No dejes nada por probar: registros, pedidos, gestión de pedidos y clientes, formularios, integración con sistemas externos, etc. Todo es susceptible de fallo ya que has actualizado gran parte del código de tu tienda.
Buenos días, necesitamos nos presupuestes una actualización de nuestro tpv (redsys) en la versión 1.7 de Magento, y también por otro lado una actualización a 1.9, gracias.
Saludos
Esto es falso, no funciona.
En cuanto deshabilitas las extensiones deja de funcionar el Magento.xD