Migración de PrestaShop 1.7 a 8.x sin pérdida de datos
Introducción: Por qué migrar a PrestaShop 8.x
Migrar tu tienda de PrestaShop 1.7 a la versión 8.x no es un capricho: es una necesidad técnica y de negocio. La versión 1.7 dejó de recibir actualizaciones de seguridad oficiales en noviembre de 2023, mientras que PrestaShop 8.x introduce mejoras críticas como compatibilidad con PHP 8.1+, motor de búsqueda mejorado, rendimiento optimizado en base de datos y nuevas APIs para integraciones. Sin embargo, el proceso de migración sin pérdida de datos requiere una planificación meticulosa.
Este artículo te guiará paso a paso para migrar PrestaShop 1.7 a 8 de forma segura, manteniendo productos, clientes, pedidos, módulos y configuraciones. Cubriremos desde la preparación del entorno hasta la verificación post-migración.
Requisitos previos para una migración exitosa
Antes de comenzar, asegúrate de cumplir con estos requisitos:
- Servidor compatible: PrestaShop 8.x requiere PHP 7.4 mínimo (recomendado PHP 8.1+), MySQL 5.7+ o MariaDB 10.2+.
- Espacio en disco: Al menos el doble del tamaño actual de tu instalación para backups y pruebas.
- Acceso SSH y FTP: Necesitarás acceso root o sudo para manipular archivos y bases de datos.
- Módulos y temas actualizados: Verifica que todos tus módulos de pago, envío y personalizados sean compatibles con PrestaShop 8.x.
- Herramientas de backup: mysqldump, rsync, tar, y un entorno de staging (recomendado).
[WARNING] No intentes migrar directamente desde PrestaShop 1.6 o versiones anteriores. Primero debes actualizar a 1.7.x y luego a 8.x.
Paso 1: Preparación del entorno de staging
Nunca realices la migración en producción directamente. Crea un duplicado exacto de tu tienda en un subdominio o servidor de pruebas.
# Clonar base de datos
mysqldump -u usuario -p prestashop_1_7 > backup_1_7.sql
# Copiar archivos
rsync -avz /var/www/prestashop1.7/ /var/www/prestashop8.test/ --exclude='cache/*' --exclude='var/cache/*'
Configura el entorno de staging con un nombre de base de datos diferente y ajusta el archivo app/config/parameters.php:
'database_host' => 'localhost',
'database_name' => 'prestashop_8_staging',
'database_user' => 'usuario_staging',
'database_password' => 'contraseña_segura',
[TIP] Usa un contenedor Docker con la versión exacta de PHP que necesitará PrestaShop 8 para evitar sorpresas.
Paso 2: Actualización desde PrestaShop 1.7.x a la última 1.7.x
Antes de saltar a 8.x, debes estar en la última versión de la rama 1.7 (1.7.8.10 a fecha de este artículo). Esto asegura que la estructura de base de datos esté actualizada.
- Actualiza manualmente desde el back office: Parámetros de la tienda > Mantenimiento > Actualizar.
- Si falla, usa el 1-Click Upgrade module (versión 5.0+). Descárgalo desde Addons o GitHub.
- Verifica que todos los módulos nativos estén actualizados.
# Si usas CLI para actualizar módulos
php bin/console prestashop:module update ps_mainmenu
php bin/console prestashop:module update ps_themeconfigurator
[INFO] Si tienes módulos personalizados, desactívalos temporalmente durante la migración para evitar conflictos.
Paso 3: Verificación de compatibilidad de módulos y temas
PrestaShop 8.x rompe la compatibilidad con muchos módulos antiguos. Usa el Módulo de Verificación de Compatibilidad (disponible en Addons) o revisa manualmente:
- Módulos de pago: PayPal, Stripe, Redsys suelen tener versiones específicas para 8.x.
- Módulos de envío: Correos, Seur, etc. Verifica en sus respectivos marketplaces.
- Temas: Los themes de 1.7 no son compatibles con 8.x. Necesitarás un tema adaptado o migrar a un theme nativo.
# Listar módulos instalados desde CLI
php bin/console prestashop:module list
Si algún módulo crítico no tiene versión para 8.x, considera migrar a una alternativa o posponer la migración.
Paso 4: Migración de datos mediante el asistente de PrestaShop
PrestaShop 8.x incluye un asistente de migración integrado en el back office. Sin embargo, para migraciones complejas es mejor usar el módulo 1-Click Upgrade en modo avanzado.
- Descarga e instala el módulo 1-Click Upgrade v5.0+ en tu staging.
- Configura el canal de actualización a "Minor release" o "Major release" según tu versión objetivo.
- Ejecuta la simulación primero para detectar errores de compatibilidad.
Pasos detallados para la migración de datos:
# 1. Copia la base de datos de producción a staging
mysqldump -u prod_user -p prod_db > prod_backup.sql
mysql -u staging_user -p staging_db < prod_backup.sql
# 2. Actualiza el archivo parameters.php con los datos de staging
# 3. Ejecuta el script de actualización desde CLI
php upgrade/upgrade.php
[WARNING] No ejecutes
upgrade.phpdirectamente en producción. Siempre en staging.
Paso 5: Migración manual de la base de datos (método avanzado)
Si el asistente falla o tienes una base de datos muy grande, puedes realizar una migración manual:
-
Exporta la base de datos de PrestaShop 1.7:
mysqldump -u root -p --opt --routines --triggers prestashop_1_7 > full_backup.sql -
Importa en una base de datos limpia de PrestaShop 8.x vacía:
mysql -u root -p prestashop_8_clean < full_backup.sql -
Ejecuta las correcciones de esquema usando el script de actualización incluido en PrestaShop 8.x:
php install/upgrade/upgrade.php -
Verifica la integridad de tablas críticas:
SELECT COUNT(*) FROM ps_product; SELECT COUNT(*) FROM ps_customer; SELECT COUNT(*) FROM ps_orders;
[TIP] Si tienes más de 100,000 productos, usa --quick en mysqldump y considera particionar la migración por lotes.
Paso 6: Migración de archivos y configuraciones
La migración de datos no solo es base de datos. También debes transferir archivos estáticos y configuraciones.
# Copiar archivos de imágenes y módulos
rsync -avz /var/www/prestashop1.7/img/ /var/www/prestashop8.test/img/
rsync -avz /var/www/prestashop1.7/modules/ /var/www/prestashop8.test/modules/ --exclude='*.git'
# Copiar archivos de temas (aunque no sean compatibles, por seguridad)
rsync -avz /var/www/prestashop1.7/themes/ /var/www/prestashop8.test/themes/
Configuraciones específicas a migrar manualmente:
- Reglas de impuestos (tabla
ps_tax_rules_group) - Transportistas (tabla
ps_carrier) - Reglas de precios específicos (tabla
ps_specific_price) - Módulos de pago (tabla
ps_moduley configuración enps_configuration)
Paso 7: Pruebas exhaustivas post-migración
Antes de considerar la migración exitosa, realiza estas pruebas:
- Funcionalidad de la tienda: Navegar como cliente, añadir al carrito, checkout completo.
- Procesamiento de pedidos: Crear pedidos de prueba y verificar flujo de estado.
- Módulos críticos: Probar pasarela de pago con tarjeta de prueba, envío, email.
- Rendimiento: Medir tiempo de carga de página, uso de memoria.
- Errores: Revisar logs en
var/logs/yerror_log.
# Verificar logs de errores
tail -f /var/www/prestashop8.test/var/logs/prod.log
Paso 8: Migración a producción
Una vez que todo funciona en staging, pasa a producción:
- Pon la tienda en modo mantenimiento.
- Copia la base de datos actualizada desde staging a producción.
- Sincroniza archivos (excluyendo configuraciones específicas de staging).
- Actualiza DNS si cambiaste de servidor.
- Verifica en producción y desactiva el modo mantenimiento.
# Poner en mantenimiento desde CLI
php bin/console prestashop:maintenance --enable
[INFO] Programa la migración en horas de bajo tráfico y ten un plan de reversión listo.
Resolución de problemas comunes
Error de incompatibilidad de módulo
# Desactivar módulo problemático
php bin/console prestashop:module disable nombre_modulo
Base de datos corrupta
# Reparar tablas
mysqlcheck -u root -p --auto-repair prestashop_db
Problemas de caché
# Limpiar caché manualmente
rm -rf var/cache/*
php bin/console cache:clear --env=prod
Conclusión: ¿Vale la pena migrar?
La migración de PrestaShop 1.7 a 8 es un proceso complejo pero necesario para mantener tu tienda segura, rápida y compatible con las últimas tecnologías. Siguiendo estos pasos, minimizas el riesgo de pérdida de datos y aseguras una transición suave.
Recuerda: la clave está en la preparación, las pruebas en staging y la verificación meticulosa. No saltes pasos, y si tienes dudas, contrata a un especialista en migración datos PrestaShop.
La inversión en tiempo y recursos se traduce en una tienda más robusta, mejor posicionada en buscadores y preparada para el futuro. La actualizar PrestaShop no es solo un deber técnico, es una ventaja competitiva.
[TIP] Documenta todo el proceso. Si necesitas repetir la migración en el futuro, te ahorrarás horas de trabajo.
