Los cambios en la base de datos no se reflejan en la tienda
Este artículo proporciona soluciones para evitar retrasos o interrupciones en la aplicación de las actualizaciones de entidades. Esto incluye cómo evitar que las tablas del registro de cambios se sobredimensionen y cómo configurar MySQL déclencheur de tabla.
Productos y versiones afectados:
- Adobe Commerce en cloud Infrastructure 2.2.x, 2.3.x
- Adobe Commerce local 2.2.x, 2.3.x
Problema
Los cambios que realice en la base de datos no se reflejan en la tienda o hay un retraso significativo en la aplicación de las actualizaciones de entidad. Las entidades que pueden verse afectadas incluyen productos, categorías, precios, inventario, reglas de catálogo, reglas de ventas y reglas de destino.
Causa
Si los indexadores están configurados para actualizarse según la programación, el problema podría deberse a una o más tablas con registros de cambios demasiado grandes o a que no se han configurado déclencheur MySQL.
Tablas de registro de cambios sobredimensionadas
Las tablas de registro de cambios crecen de ese modo si el trabajo cron de indexer_update_all_views
no se completa correctamente varias veces.
Las tablas de registro de cambios son las tablas de base de datos en las que se realiza un seguimiento de los cambios en las entidades. Un registro se almacena en una tabla de registro de cambios mientras no se aplique el cambio, que realiza el trabajo cron de indexer_update_all_views
. Hay varias tablas de registro de cambios en una base de datos de Adobe Commerce, y se les asigna un nombre según el siguiente patrón: INDEXER_TABLE_NAME + '_cl', por ejemplo catalog_category_product_cl
, catalog_product_category_cl
. Puede encontrar más detalles sobre cómo se realiza el seguimiento de los cambios en la base de datos en el artículo Resumen de la indexación > Mview de nuestra documentación para desarrolladores.
MySQL déclencheur de base de datos no configurados
Sospecharía que no se han configurado déclencheur de base de datos, si después de agregar o cambiar una entidad (producto, categoría, regla de destino, etc.) - no se agregan registros a la tabla de registro de cambios correspondiente.
Solución
Evite el sobretamaño de las tablas del registro de cambios
Asegúrese de que el trabajo cron de indexer_update_all_views
siempre se complete correctamente.
Puede utilizar la siguiente consulta SQL para obtener todas las instancias erróneas del trabajo cron indexer_update_all_views
:
select * from cron_schedule where job_code = "indexer_update_all_views" and status
<> "success" and status <> "pending";
O puede comprobar su estado en los registros buscando las indexer_update_all_views
entradas:
<install_directory>/var/log/cron.log
: para las versiones 2.3.1+ y 2.2.8+<install_directory>/var/log/system.log
- para versiones anteriores
Volver a establecer MySQL déclencheur de tabla
Para configurar los déclencheur de tabla MySQL que faltan, debe volver a establecer el modo de indizador:
- Cambie a "Al guardar".
- Cambie a "Según lo programado".
Utilice el siguiente comando para realizar esta operación.
php bin/magento indexer:set-mode {realtime|schedule} [indexerName]
Lectura relacionada
- MySQL las tablas son demasiado grandes en nuestra base de conocimiento de soporte
- Indexación: Mview en nuestra documentación para desarrolladores
- Prácticas recomendadas para modificar tablas de base de datos en el libro de estrategias de implementación de Commerce