Limpieza de la base de datos: configuración y ayuda
Inicio rápido
- Sube e instala el ZIP de mprdatabasecleanup mediante "Module Manager" y haz clic en "Configure".
- Elige el contexto de tienda deseado y comprueba los permisos de empleados y el almacenamiento privado de copias descritos más abajo.
- En Configuración, revisa Activado y Conservación de archivos en horas, y abre la política de tu primera tarea de limpieza.
- Abre Área de limpieza, selecciona una tarea en Tareas y haz clic en Previsualizar limpieza.
- Revisa los valores guardados ID de ejecución y Huella del plan, las tiendas afectadas, recuentos de candidatos, protecciones, estimaciones y conflictos.
- 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.
- 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
La confirmación no identificaba claramente la tarea
Caracteres escapados en etiquetas de tareas
Panel de tareas de limpieza ausente
Estado de configuración obsoleto
Etiquetas traducidas en inglés
La limpieza elimina cuentas de invitado con carritos activos
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
Podían eliminarse datos de invitados activos
La limpieza desactivada podía seguir ejecutándose
Limpieza de carritos e invitados incompleta
El módulo no cargaba en PHP 7.1
La administración podía no abrirse
Configuración de limpieza no disponible
Solicitudes de funcionalidades
8
Implementado
Panel de limpieza con recuentos y gestión de tareas
Tareas de limpieza de la base de datos
Actualizaciones con un clic
Administración multilingüe
Planes de limpieza revisados
Copias de seguridad cifradas y restauración
Historial e informes de limpieza
Políticas por tienda y ejecución por 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.