DataFirefly Staging Pro — Guía completa
Clonar, probar y enviar a producción: instalación, creación de un staging, opciones de protección, push selectivo y rollback para PrestaShop 8 y 9.
Staging Pro crea una copia completa de tu tienda (archivos + base de datos) en una subcarpeta protegida de tu hosting actual, sin ningún timeout gracias a su motor de copia por lotes. Pruebas módulos, temas y actualizaciones con total seguridad, y luego envías tus cambios a producción tabla por tabla, con copia de seguridad automática y rollback en un clic. Esta guía cubre la instalación, la creación de un staging, las opciones de protección, el push a producción y el rollback.
Instalación
- Descarga el archivo
dfstagingpro.zipdesde tu cuenta DataFirefly. - Back office de PrestaShop → Módulos → Subir un módulo → envía el ZIP.
- Al instalarse, el módulo crea sus tablas
df_staging_envydf_staging_log, registra sus hooks y añade la pestaña Parámetros avanzados → Staging Pro.
Compatible con PrestaShop 8.0 a 9.x. PHP debe poder escribir en la raíz de la tienda (creación de la subcarpeta de staging) y el usuario MySQL debe poder CREATE, DROP y RENAME TABLE — algo habitual en una instalación PrestaShop estándar. Sin dependencia de Composer.
Cómo funciona el staging
Un entorno de staging se crea en una subcarpeta en la raíz de tu tienda (por ejemplo /staging-v2/) y usa un prefijo de tablas dedicado (por ejemplo dfs1_) en la misma base de datos que producción. Por tanto, no necesitas ni un segundo servidor, ni un nuevo acceso MySQL, ni configuración DNS.
El motor de copia trabaja por lotes de unos segundos y luego cede el control, reanudándose exactamente donde se detuvo: copia de archivos mediante una cola persistente, clonado de la base por paquetes de filas. Una tienda de varios gigabytes se clona sin errores, incluso en hosting compartido con un max_execution_time bajo.
Crear un staging
Ve a Parámetros avanzados → Staging Pro y, en el panel de creación:
- Introduce un nombre (solo minúsculas, dígitos y guiones, por ejemplo
v2). La URL del staging serátu-tienda.com/staging-v2/. - Elige tus opciones de protección y copia (ver más abajo).
- Haz clic en Crear. El progreso se muestra en directo con una barra de avance.
Al final del proceso, la URL del staging y, si procede, las credenciales htpasswd aparecen en la fila del entorno.
Opciones de protección y copia
- Proteger con .htpasswd: añade una autenticación HTTP (usuario
staging). La contraseña puede introducirse o generarse automáticamente, y luego se muestra en el panel. - Desactivar e-mails: corta los e-mails salientes del staging (PS_MAIL_METHOD = 3). Sin riesgo de escribir a un cliente real.
- Desactivar pagos: desactiva y deshookea los módulos de pago conocidos en el staging.
- Omitir estadísticas: excluye de la copia las tablas grandes y no esenciales (conexiones, logs, carritos abandonados…) para una copia mucho más rápida.
- Symlink de la carpeta img/: crea un enlace simbólico a las imágenes en lugar de copiarlas, para un enorme ahorro de espacio en disco.
- Modo mantenimiento: pone el staging en mantenimiento con tu IP de administración en lista blanca.
Desde su creación, todo staging recibe automáticamente una cabecera X-Robots-Tag: noindex, un meta noindex y un robots.txt que bloquea, además de un banner naranja STAGING en el front office y en el back office. Tus entornos de prueba no corren el riesgo de ser indexados por Google.
La opción symlink de img/ comparte la carpeta de imágenes con producción: modificar o eliminar una imagen en el staging también afecta a la tienda en línea. Resérvala para pruebas que no toquen las imágenes.
El motor de copia por lotes
La creación de un staging encadena varias etapas, cada una con su presupuesto de tiempo y reanudación automática: preparación, copia de archivos, clonado de la base de datos, reescritura de URLs, configuración y protección, y finalización. La reescritura de URLs cubre shop_url, la configuración (incluidos los valores serializados y JSON, tratados sin corrupción), así como los contenidos CMS, productos, categorías, marcas, proveedores y tiendas.
Si la página se cierra durante la creación, el entorno permanece en curso y reanuda automáticamente la copia al reabrir el panel, exactamente donde se detuvo.
Refresh, multientorno y eliminación
- Refresh: reconstruye un staging existente desde el estado actual de producción (elimina y luego recrea la carpeta y el prefijo), en un clic.
- Multientorno: crea tantos stagings como necesites (v2, hotfix, prueba de módulos…), cada uno independiente.
- Eliminación: elimina la carpeta y las tablas de un entorno de forma presupuestada, sin timeout.
Push a producción
Una vez validadas tus pruebas, el botón Push permite enviar tus cambios a producción, tabla por tabla:
- Haz clic en Push en la fila del entorno: aparece la lista de tablas, con el número de filas de cada una.
- Marca exactamente las tablas a transferir.
- Confirma. Antes de cada reemplazo, la tabla de producción correspondiente se respalda automáticamente mediante un renombrado con marca de tiempo a un prefijo
dfbak{marca}_.
Las URLs se reescriben en el sentido staging → producción durante la transferencia. Las tablas críticas (shop_url, configuration, shop, sesiones y tablas del módulo) están protegidas y nunca pueden enviarse.
El push modifica tu tienda en producción. La copia de seguridad automática protege las tablas reemplazadas, pero verifica siempre tu selección. Evita enviar tablas de pedidos o de clientes si producción ha seguido registrando ventas desde la creación del staging.
Rollback
El botón Rollback restaura producción desde la última copia del push, en un clic. El módulo renombra las tablas de copia dfbak…_ para que vuelvan a su lugar original.
Una vez validado y estable un push, elimina las antiguas tablas dfbak* (mediante phpMyAdmin o cualquier cliente SQL) para liberar espacio en tu base de datos.
Salvaguardas y registro
- Todas las acciones se bloquean si la tienda actual es ella misma un staging, para evitar operaciones en cascada.
- Hay un registro detallado por entorno disponible mediante el botón Logs.
- Como un
robots.txten una subcarpeta no es respetado por los motores, la verdadera protección anti-indexación se basa en la cabeceraX-Robots-Tagy el metanoindex; la opción.htpasswdsigue siendo la protección más segura.
Compatibilidad y notas técnicas
- PrestaShop 8.0 a 9.x, compatible con hosting compartido y multiidioma.
- Controlador de administración legacy (sin controlador Symfony) para la compatibilidad PS8/PS9.
- Endpoints AJAX del back office mediante el 4.º argumento de
getAdminLink(); renderizado JSON mediante un método dedicado. - Staging = subcarpeta en la raíz + prefijo de tablas
dfs{id}_en la misma base MySQL. - Copias de seguridad del push con marca de tiempo bajo el prefijo
dfbak{YmdHis}_, a purgar tras la validación.
FAQ y resolución de problemas
¿Funciona el módulo en un hosting compartido? Sí. El motor de copia por lotes con reanudación automática evita cualquier timeout, sea cual sea el max_execution_time del servidor.
La creación se interrumpió, ¿qué hago? Reabre el panel de Staging Pro: el entorno reanuda automáticamente la copia donde se detuvo.
¿Puede el staging enviar e-mails a mis clientes? No si la opción «Desactivar e-mails» está activa (recomendado): los e-mails salientes se cortan en el staging.
Tras un push, ¿cómo lo deshago? Usa el botón Rollback, que restaura la última copia automática. Luego recuerda purgar las tablas dfbak* obsoletas.
¿Puedo crear varios stagings a la vez? Sí, el número de entornos es ilimitado y cada uno es totalmente independiente.