Limpieza de la base de datos: configuración y ayuda

Inicio rápido

  1. Sube e instala el ZIP de mprdatabasecleanup mediante "Module Manager" y haz clic en "Configure".
  2. Elige el contexto de tienda deseado y comprueba los permisos de empleados y el almacenamiento privado de copias descritos más abajo.
  3. En Configuración, revisa Activado y Conservación de archivos en horas, y abre la política de tu primera tarea de limpieza.
  4. Abre Área de limpieza, selecciona una tarea en Tareas y haz clic en Previsualizar limpieza.
  5. Revisa los valores guardados ID de ejecución y Huella del plan, las tiendas afectadas, recuentos de candidatos, protecciones, estimaciones y conflictos.
  6. Para tareas de riesgo elevado o alto, completa Verificar copia de seguridad y Aprobar este plan antes de Ejecutar plan aprobado. Para una tarea de bajo riesgo, revisa y confirma la ejecución.
  7. Comprueba Historial y el informe final. Confirma Completado y revisa las filas omitidas o fallidas antes de planificar otra ejecución.

Requiere PrestaShop 1.6 o posterior y PHP 7.1 o posterior.

Manual de configuración

Instalación y primera configuración

Sigue los pasos de Inicio rápido.

Prepara el acceso y el almacenamiento

El módulo añade "Configure" > Database Cleanup con Área de limpieza, Historial, Copias de seguridad y restauración y Ajustes. Ajustes > Configuración abre el formulario de configuración. Integridad, Licencia, Soporte y Actualizar son páginas de mantenimiento.

Selecciona el contexto de tienda deseado. El módulo comprueba los permisos nativos de perfiles de empleados y las tiendas autorizadas. Tiene entradas de permisos independientes para Previsualizar limpieza, Limpieza de estadísticas, Limpieza de datos personales, Limpieza del catálogo, Aprobar ejecuciones destructivas, Ejecución inmediata y programación, Exportar copias cifradas, Restaurar copias y Optimizar tablas. Concede a los empleados solo el acceso a tareas y operaciones que necesiten. La falta de permisos desactiva o rechaza la acción correspondiente.

La inspección de tareas usa acceso de lectura; la eliminación de datos mediante una tarea requiere permiso de eliminación para su categoría. Aprobación, verificación de copias, programación, restauración, exportación de copias y optimización requieren su permiso de edición correspondiente. La ejecución CLI también comprueba un empleado real y el acceso a tiendas.

Los archivos cifrados de filas requieren OpenSSL con AES-256-GCM y almacenamiento privado con permiso de escritura. De forma predeterminada, el módulo usa un directorio oculto .mprdatabasecleanup-... junto a la raíz de la tienda. La constante de configuración del servidor MPRDBCLEAN_STORAGE_ROOT permite elegir otra raíz privada. La raíz y el directorio archives deben tener permisos privados 0700; el archivo generado archive.key debe tener 0600. El módulo rechaza directorios con enlaces simbólicos o permisos inseguros. Protege y conserva la clave con tus medios de recuperación. Los archivos cifrados exportados no la incluyen.

Antes de tu primera ejecución destructiva, conserva una copia completa e independiente de la base de datos. Los archivos de filas del módulo cubren el flujo de limpieza y no son una copia completa de la tienda.

Configura la ejecución y las políticas de tareas

Abre Configuración. El primer formulario contiene:

Ajuste Valor predeterminado Función
Activado Heredar; Sí efectivo cuando no existe un valor Elige Sí o No para el ámbito seleccionado, o Heredar para usar su ámbito superior. El valor efectivo se comprueba antes de los lotes destructivos, incluidas restauración y optimización.
Conservación de archivos en horas 720 Duración de los archivos, equivalente a 30 días. Introduce un valor positivo hasta 87600. Para una ejecución multitienda, se aplica la mayor retención efectiva.

Selecciona una tarea de la lista de políticas. Su formulario ofrece:

Ajuste Valor predeterminado Cuándo cambiarlo
Activado Sí salvo las tareas de activación opcional siguientes Activa una tarea opcional solo si quieres incluirla. Es independiente del interruptor general de ejecución.
Días de conservación Específico de cada tarea, más abajo Cambia el umbral de antigüedad. Introduce un entero positivo; 0 no significa conservar para siempre aquí.
Tamaño del lote 1000 Reduce el tamaño del lote cuando las operaciones individuales carguen demasiado el servidor. Máximo 10000.
Límite de filas por ejecución 50000 Limita el número de filas procesadas con el límite guardado en la política.
Tiempo máximo por ejecución en milisegundos 1000 Limita la duración del trabajo. Introduce un valor positivo hasta 3600000.
Antigüedad máxima de la copia en horas 24 Antigüedad máxima aceptable de la verificación de copia requerida. Renueva la verificación cuando quede obsoleta. Máximo 87600.
Programación de tareas Vacío Expresión cron de cinco campos para la tarea, como 0 3 * * *. Déjala vacía para desactivar la programación. Requiere el proceso cron del servidor descrito más abajo.
Zona horaria UTC Zona horaria usada para evaluar la programación de la tarea. Usa un identificador reconocido.

Cada paso de procesamiento utiliza los límites aplicables más bajos de filas y tiempo. Una ejecución guardada puede necesitar varios pasos para terminar.

Guarda la política después de editar. Los ajustes tienen ámbito y se heredan; la tabla de políticas efectivas muestra el origen y los valores resueltos de cada tarea y tienda. Una vista previa guardada contiene la instantánea de su política. Tras cambiar la política o el ámbito, crea una nueva vista previa en lugar de reutilizar la aprobación de un plan antiguo.

Tareas disponibles

La tabla muestra los valores de retención incluidos y qué tareas empiezan desactivadas. La retención es una condición de elegibilidad; las referencias, la pertenencia y la política de tienda pueden proteger más filas.

Tarea Clave Días Activada al inicio
Carritos abandonados old_carts 30 Sí
Relaciones de carritos huérfanas orphan_cart_children 30 Sí
Estadísticas de búsqueda search_stats 90 Sí
Precios específicos caducados expired_specific_prices 30 Sí
Registros antiguos old_logs 90 Sí
Visitas antiguas old_connections 90 Sí
Observaciones de visitantes caducadas old_guests 90 Sí
Registros de correo mail_logs 30 Sí
Páginas de visitas huérfanas orphan_connection_pages 90 Sí
Orígenes de visitas huérfanos orphan_connection_sources 90 Sí
Estadísticas de páginas no encontradas missing_pages 90 Sí
Reglas de carrito caducadas expired_cart_rules 30 No
Combinaciones huérfanas orphan_combinations 90 Sí
Relaciones de combinaciones huérfanas orphan_combination_relations 90 Sí
Variantes seleccionadas del comerciante selected_combinations 90 No
Índice de búsqueda huérfano orphan_search_index 90 No
Palabras de búsqueda sin usar unused_search_words 90 No
Direcciones huérfanas orphan_addresses 90 No
Relaciones de catálogo huérfanas orphan_catalogue 90 No

Los carritos abandonados vinculados a pedidos están protegidos. La limpieza de invitados protege las referencias a clientes, carritos y conexiones. Si se desconoce la antigüedad de un invitado, la retención empieza en la observación del módulo en lugar de suponer que es seguro eliminar a un invitado antiguo. El módulo observa los eventos de alta/actualización de invitados, carritos y conexiones.

Los precios específicos caducados usan su fecha de fin y la retención, no simplemente todos los precios que acaben de caducar. Las variantes reales del comerciante usan Variantes seleccionadas del comerciante con ID explícitos, vista previa y aprobación. Son distintas de las tareas de combinaciones huérfanas. Las comprobaciones de referencias pueden excluir filas usadas por pedidos, carritos, existencias, proveedores, paquetes, almacenes, promociones o módulos.

Previsualiza y ejecuta la limpieza

Abre Área de limpieza. Selecciona una o varias entradas en Tareas. El campo opcional Días de conservación para esta ejecución sustituye la retención para esta vista previa. ID de combinaciones seleccionadas, separados por comas proporciona ID explícitos para la limpieza de variantes del comerciante. Nombres de módulos reconocidos, separados por comas registra las confirmaciones de dependencias. Deja estos campos opcionales vacíos salvo que la tarea seleccionada los necesite.

Haz clic en Previsualizar limpieza. Espera a que termine la planificación. Revisa ID de ejecución, Huella del plan, ámbito de tiendas, recuentos de candidatos, filas protegidas/omitidas, dependencias, riesgo y estimaciones. Las estimaciones son bytes lógicos. La asignación del motor y el espacio reutilizable son medidas separadas; las filas eliminadas no implican una reducción equivalente del tamaño del archivo de base de datos.

Para tareas de riesgo elevado y alto, haz clic en Verificar copia de seguridad, espera a que termine la verificación y después en Aprobar este plan. La aprobación está vinculada al hash exacto del plan y al empleado autenticado. No autoriza un plan modificado. Usa Ejecutar plan aprobado y revisa la confirmación.

Para una tarea de bajo riesgo, usa la confirmación de ejecución después de revisar la vista previa. Ejecutar ahora parte de las tareas seleccionadas y usa las mismas comprobaciones de planificación y permisos. No omite los requisitos de copia o aprobación de las tareas de mayor riesgo.

El navegador hace avanzar el trabajo mediante solicitudes limitadas. Usa Actualizar estado para inspeccionar una ejecución guardada, Cancelar ejecución para solicitar la cancelación y Reanudar ejecución cuando el informe permita reanudar. Si el resultado es Parcial o "Failed", inspecciona primero las razones. Repetir a ciegas la tarea original no sustituye la revisión de una ejecución guardada.

Las reparaciones de datos obsoletos de la página Integridad crean vistas previas de limpieza mediante este espacio. No usan las antiguas consultas de eliminación directa.

Revisa el historial y restaura

Abre Historial y filtra por tienda, intervalo de fechas, tarea, desencadenante, ID de empleado o resultado. Abre una ejecución guardada y revisa sus recuentos y resultados. "Export report JSON" y "Export report CSV" exportan informes.

Abre Copias de seguridad y restauración, carga el ID de ejecución e inspecciona los elementos archivados. Usa ID del elemento de copia con Exportar copia cifrada para exportar un elemento cuando tengas autorización. Conserva por separado la clave privada de cifrado; la exportación no la contiene.

Usa Previsualizar restauración y revisa los conflictos. Restaurar copia verificada usa el hash de la vista previa de restauración y rechaza filas actuales en conflicto. Crear nueva vista previa de restauración reconstruye la vista previa cuando sea necesario. La restauración depende de la disponibilidad, integridad y caducidad del archivo, del ámbito coincidente y de los permisos. No es un botón de deshacer incondicional.

Para mantener las tablas, introduce Tablas para optimizar, separadas por comas y usa Previsualizar optimización de tablas, Verificar copia de optimización, Aprobar optimización de tablas y Optimizar tablas. Revisa esa vista previa independiente antes de ejecutar. La optimización no se realiza automáticamente con cada limpieza.

Eliminar archivos caducados mantiene los archivos y requiere el ámbito global y el estado de ejecución adecuados. Comprueba la retención antes de purgar. El módulo no puede restaurar un archivo caducado o cuya clave de cifrado se haya perdido.

Usa la línea de comandos

El punto de entrada CLI es modules/mprdatabasecleanup/bin/cleanup.php. Rechaza la ejecución HTTP. Usa el binario PHP de la tienda y sustituye los ID de empleados/tiendas de los ejemplos por ID autorizados.

Previsualiza una tarea:

php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --task=search_stats --preview

El resultado es un informe JSON. Guarda sus valores reales ID de ejecución y Huella del plan. Para una ejecución que requiera copia y aprobación, ejecuta comandos independientes:

php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --run-id=RUN_UUID --verify-backup
php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --run-id=RUN_UUID --approve --plan-hash=PLAN_HASH
php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --run-id=RUN_UUID --execute

Usa --restore-preview y después --restore --plan-hash=RESTORE_PREVIEW_HASH para el flujo de restauración. --verify-backup --renew-backup renueva la verificación e invalida la aprobación anterior cuando corresponda. --batches=N guarda un punto de control y sale tras un número limitado de avances.

Para una nueva vista previa, las sustituciones admitidas incluyen --retention-days=N, --batch-size=N, --row-budget=N, --time-budget-ms=N, --combination-ids=ID[,ID] y --acknowledged-modules=NAME[,NAME]. Con un --run-id guardado, se rechazan las sustituciones de política/tareas. --global solicita el ámbito global y sigue requiriendo acceso autorizado a tiendas. Usa --help para leer el uso actual.

El código de salida 0 significa que la etapa solicitada alcanzó un resultado aceptado, incluida una vista previa correcta. El código 2 significa que la operación solicitada está incompleta; revisa el informe. El código 1 indica un comando rechazado o un error. No trates la salida correcta de una vista previa como prueba de que se ejecutó la eliminación.

Para ejecutar la limpieza programada, guarda la programación y la zona horaria de la tarea y configura cron en el servidor para invocar php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --scheduled cada minuto. Sustituye los ID por los de un empleado y una tienda autorizados. Usa una tienda por proceso o añade --global con todos los ID de tiendas en --shops para los registros compartidos. Guardar una programación no configura cron en el servidor.

El proceso inicia las tareas activadas cuya hora programada ha llegado y continúa sus ejecuciones guardadas en pasos limitados. --batches=N establece el máximo de avances de la ejecución por tarea programada en cada invocación del proceso; el valor predeterminado es uno. Para una ejecución global, cada política efectiva de tienda y la política global deben estar activadas y tener prevista la ejecución en ese momento en su zona horaria guardada. Siguen aplicándose los permisos del empleado, el acceso a tiendas y el interruptor general de ejecución. Las ejecuciones de riesgo elevado y alto esperan una copia verificada y la aprobación explícita del plan guardado exacto. Abre la ejecución desde Historial, verifica su copia y apruébala; las siguientes invocaciones del proceso podrán continuarla.

Verifica y soluciona problemas

Después de una ejecución pequeña de prueba, confirma Completado, lee los motivos de omisión/fallo y compara los datos afectados con la vista previa. Comprueba Historial y, cuando se requiera, el estado de copia verificada. La tienda no tiene un widget de limpieza; el espacio visible del módulo está en el back office.

Si una acción no está disponible, comprueba el valor general Activado, Activado de la tarea, los permisos del empleado para la tarea, el permiso de la operación y el contexto de tienda seleccionado. Si falla la verificación de copia, comprueba OpenSSL, la propiedad del almacenamiento privado, los permisos de directorios y el archivo de clave. Si cambiaron los ajustes, crea una nueva vista previa. Si otro proceso está ocupado, usa el flujo de reintento/estado de la ejecución guardada en lugar de iniciar ejecuciones simultáneas en competencia.

La limpieza opera sobre datos de la base de datos. El inventario y las mediciones de archivos no autorizan a eliminar archivos de imágenes o personalización. No sustituyas el flujo por los obsoletos ejemplos directos DELETE ... LIMIT.

Desactiva o desinstala

Establece el valor general Activado en No en el ámbito efectivo para detener los lotes destructivos. Cancela o revisa las ejecuciones pendientes. Usa "Module Manager" para desactivar el módulo cuando necesites que todos sus hooks estén inactivos.

La desinstalación elimina la configuración y el menú de administración del módulo. Su método de desinstalación no elimina el historial/esquema de limpieza ni el directorio privado externo de archivos y su clave. Conserva esos medios de recuperación hasta completar las restauraciones necesarias. Desinstalar no restaura los datos ya eliminados.

Preguntas

Aún no hay preguntas sobre este módulo

Pregunta lo que quieras sobre instalación, compatibilidad o configuración. Las respuestas aparecen aquí.

Problemas conocidos

14

Mantenimiento pendiente indicado como configuración incompleta

ResueltoActualizado:
Corregido en: 1.1.25
Los datos antiguos pendientes de limpieza podían hacer que el módulo indicara incorrectamente una configuración incompleta.

La confirmación no identificaba claramente la tarea

ResueltoActualizado:
Corregido en: 1.1.24
La confirmación de limpieza mostraba un identificador técnico en lugar del nombre legible de la tarea.

Caracteres escapados en etiquetas de tareas

ResueltoActualizado:
Corregido en: 1.1.23
Las etiquetas de tareas de limpieza podían mostrar puntuación codificada en lugar de texto legible.

Panel de tareas de limpieza ausente

ResueltoActualizado:
Corregido en: 1.1.22
La página de limpieza podía abrirse sin los controles de tareas.

Estado de configuración obsoleto

ResueltoActualizado:
Corregido en: 1.1.22
El banner de configuración podía seguir mostrando los ajustes anteriores tras guardar.

Etiquetas traducidas en inglés

ResueltoActualizado:
Corregido en: 1.1.21
Las etiquetas de administración podían seguir en inglés pese a existir traducciones.

La limpieza elimina cuentas de invitado con carritos activos

ResueltoActualizado:
Corregido en: 1.1.20

La limpieza de cuentas de invitado elimina las entradas de invitado más antiguas que el umbral configurado, pero no comprueba si esos invitados tienen contenidos de carrito no caducados. Esto pierde datos potenciales de recuperación de carritos abandonados.

Nota de resolución

Se añadió una comprobación de actividad del carrito que excluye de la limpieza las cuentas de invitado con contenidos de carrito de menos de 30 días.

La limpieza afectaba a tiendas no seleccionadas

ResueltoActualizado:
Corregido en: 1.1.20
En instalaciones multitienda, la limpieza podía eliminar datos de tiendas fuera del contexto seleccionado.

Podían eliminarse datos de invitados activos

ResueltoActualizado:
Corregido en: 1.1.20
La limpieza de invitados podía eliminar registros sin comprobar su antigüedad ni las referencias activas a clientes, carritos y visitas.

La limpieza desactivada podía seguir ejecutándose

ResueltoActualizado:
Corregido en: 1.1.20
El interruptor de activación no detenía todas las acciones de limpieza.

Limpieza de carritos e invitados incompleta

ResueltoActualizado:
Corregido en: 1.1.20
Las tareas de limpieza de carritos e invitados podían fallar en lugar de eliminar registros antiguos aptos.

El módulo no cargaba en PHP 7.1

ResueltoActualizado:
Corregido en: 1.1.18
Las tiendas con PHP 7.1 podían no poder cargar el módulo.

La administración podía no abrirse

ResueltoActualizado:
Corregido en: 1.1.17
La administración del módulo podía detenerse con un error si faltaba un componente de compatibilidad necesario.

Configuración de limpieza no disponible

ResueltoActualizado:
Corregido en: 1.1.15
Abrir la configuración no mostraba ajustes de limpieza utilizables.

Solicitudes de funcionalidades

8

Implementado

Panel de limpieza con recuentos y gestión de tareas

Implementado
Desde el panel de administración puedes consultar una vista previa del número de filas que se van a limpiar. Puedes seleccionar y ejecutar las tareas por separado o juntas.

Tareas de limpieza de la base de datos

Implementado
Elimina carritos antiguos que cumplan los requisitos, estadísticas, precios específicos caducados, registros y datos de visitantes sin usar.

Actualizaciones con un clic

Implementado
Actualiza el módulo desde su página de administración.

Administración multilingüe

Implementado
Usa los textos de administración en francés, alemán, español, italiano y polaco.

Planes de limpieza revisados

Implementado
Previsualiza un plan de limpieza, verifica la cobertura de las copias de seguridad y aprueba el plan antes de ejecutarlo.

Copias de seguridad cifradas y restauración

Implementado
Exporta copias de seguridad cifradas y previsualiza la restauración con comprobaciones de conflictos con los datos actuales.

Historial e informes de limpieza

Implementado
Revisa las ejecuciones de limpieza, reanuda el trabajo incompleto y exporta informes.

Políticas por tienda y ejecución por línea de comandos

Implementado
Define políticas de tareas para cada tienda y ejecuta los planes guardados desde la línea de comandos.

Registro de cambios

v1.1.162026-08-14

  • AddedRestore database cleanup config page
  • Addedcomplete FR/DE/ES/IT/PL translations
Versiones anteriores

v1.3.02026-04-20

  • Addedadmin menu management via MenuInstaller for streamlined module setup

v1.2.02026-01-15

  • AddedPrestaShop 9 and Hummingbird theme compatibility
  • Addedcleanup for PS 9 Symfony message queue stale records and failed dispatch logs
  • Improveddry-run mode to display exact SQL row counts per cleanup category before execution
  • Fixedcleanup of expired cart rules incorrectly skipping valid multi-currency rules
  • Addedscheduled auto-cleanup mode with configurable frequency and post-run email summary

v1.1.02025-08-04

  • Addedcleanup for stale page-not-found log entries older than configurable number of days
  • Addedcleanup for connection log entries exceeding a configurable maximum row count
  • Improvedcleanup UI with progress indicator for large table operations
  • Fixedorphaned search stat entries not detected when an Elasticsearch module is installed

v1.0.02025-05-10

  • Initialrelease of Database Cleanup
  • InitialRemoves abandoned carts older than a configurable number of days
  • InitialRemoves expired cart rules that have passed their validity end date
  • InitialClears accumulated search query statistics from ps_search_word and related tables
  • InitialClears connection log and page-not-found log tables
  • InitialDry-run mode previews exactly what will be removed before any changes are committed

Demo

Prueba el módulo completo

  • Tienda demo lista Explora una tienda demo lista en tu navegador.
  • Sin registro Sin cuenta, correo ni dominio de tienda.

Al abrir esta demo, acepta los términos de la demo y la política de privacidad.

Cargando...
Volver arriba