Después de varias importaciones en mal estado, me he quedado con una carga de reescrituras de URL que necesito eliminar.
Estoy ejecutando Enterprise 1.13
Cuando tuve este problema en la comunidad, simplemente core_url_rewrite
lo trunqué y lo reindexé.
Sin embargo, en Enterprise, noto que hay varias tablas diferentes que controlan las reescrituras.
enterprise_url_rewrite
enterprise_url_rewrite_category_cl
enterprise_url_rewrite_product_cl
enterprise_url_rewrite_redirect
enterprise_url_rewrite_redirect_cl
enterprise_url_rewrite_redirect_rewrite
¿Estoy seguro de truncarlos a todos?
Anticipo completamente que alguien me diga que nunca debería truncar estas tablas, por lo que pido disculpas de antemano por la ingenuidad.
magento-enterprise
url-rewrite
ee-1.13
JamesAllwood
fuente
fuente
core_url_rewrite
y funcionó.Respuestas:
Estamos en una situación similar a la tuya James. Después de mucho excavar esto es lo que se me ocurrió:
La
core_url_rewrite
tabla ahora está en desuso, en cambio Magento EE 1.13 ahora almacena las reescrituras enenterprise_url_rewrite
.Tablas:
enterprise_*_category_rewrite
usocatalog_*_entity_url_key
tablas para reconstruir las dos tablas de reescritura cuando ejecutephp indexer.php --reindex catalog_url_*
Cuando agrega una 'Redirección de URL' en el Catálogo de administración-> Redirecciona URL para una URL personalizada, se agrega a la
enterprise_url_rewrite_redirect
tabla y el indicador para Magento de que el índice ahora está desactualizado se ingresa en laenterprise_url_rewrite_redirect_cl
tabla que, cuando se ejecuta,php indexer.php --reindex url_redirect
reconstruye elenterprise_url_rewrite_redirect_rewrite
tabla.Nota rápida, cualquier tabla que termine en _cl es segura de truncar, el 'CL' significa Registro de cambios y Magento lo utiliza para verificar si es necesario volver a indexar.
En lo que respecta a las tablas de clave de URL, todavía no tengo idea de por qué hay dos entradas de clave de URL una en
catalog_*_entity_url_key
y una encatalog_*_entity_varchar
(id. De atributo 90), pero supongo que esto es lo que sucede:Cuando crea un nuevo producto / categoría, Magento usa el nombre para generar una url_key que se coloca en
catalog_*_entity_url_key
AND en elcatalog_*_entity_varchar
, pero la tabla principal utilizada por Magento escatalog_*_entity_url_key
porque si la trunca y ejecuta,php indexer.php --reindex catalog_url_*
susenterprise_*_category_rewrite
tablas estarán vacías y los productos / categorías en la interfaz mostrará urls feas, es decirhttp://example.com/catalog/product/view/id/123/etc/etc
(no compatible con SOE). Creo que las dos tablas están relacionadas y se utilizan para construir laenterprise_url_rewrite
tabla porque esta tabla almacena una 'request_path' muy probablemente la url_key dentro de lacatalog_*_entity_varchar
tabla y un 'identificador' que es el primario Clave URL de lacatalog_*_entity_url_key
tabla. Podría estar completamente equivocado sobre las tablas url_key y varchar, así que solo estoy pensando en voz alta.De todos modos, para truncar y reconstruir con éxito todas las tablas de reescritura que puede ejecutar:
y luego ejecuta:
Si también truncas
enterprise_url_rewrite_redirect
, perderá todas las redirecciones personalizadas que ve en su panel de administración, tal vez este sea su objetivo, ya que se quedó con un montón de URL inútiles. Mientras NO trunques las tablas '* _entity_url_key', estarás bien.Nuestra historia era un poco diferente, porque teníamos claves de URL duplicadas y problemas importantes con los nombres de productos de las importaciones de Excel después de actualizar a 1.13 desde 1.11, así que escribí este script rápido para restablecer la
catalog_product_entity_url_key
tabla y las claves de URL y las rutas de URL en lacatalog_product_entity_varchar
tabla usando el producto nombres Adjunto el código a continuación, pero si lo usa, úselo bajo su propio riesgo.El código se puede modificar para usar el método de clave de formato Magentos aquí: http://www.magentocommerce.com/wiki/3_-_store_setup_and_management/seo/url_key_characters_conversion Desafortunadamente, encontré el wiki después de actualizar todas las claves, así que no me molesté en volver a actualizar todo de nuevo.
Espero que ayude :)!
fuente
sudo php indexer.php --reindex catalog_url_catalog
debería sersudo php indexer.php --reindex catalog_url_category
.catalog/product/view/id/XXX/category/YYY
. ¿Puedes confirmar que esto es lo mismo para ti? No tengo ni idea de esto ... ¿Es un error o estoy haciendo algo mal? Traté de hacer lo mismo en una nueva instalación de 1.13.0.2, sucedió lo mismo. Reescribe funciona bien en la interfaz, pero no se establece ninguna categoría.Según lo que he visto jugando con EE 1.13 en un entorno de prueba y unas pequeñas pruebas rápidas que acabo de hacer, debería poder truncar esas tablas y luego reconstruir manualmente todos los índices de URL de la CLI.
Las tablas * _cl se utilizan en los DISPARADORES encontrados en el
catalog_product_entity_url_key
tabla. Los registros que insertan en esta tabla * _cl son los que, creo, se usan para indicar qué se debe volver a indexar después de guardar.Aquí esta lo que hice. Después de usar la herramienta CLI para reconstruir los índices, todo parecía estar listo. Truncamiento de MySql ...
Luego en la CLI ...
Háganos saber sus resultados ... como Marius, todavía no he construido un sitio EE 1.13 y solo tengo la experiencia de jugar con él desde Imagine. :)
fuente
enterprise_url_rewrite
vscore_url_rewrite
como estaban antes. Lascatalog_*_entity_url_key
tablas parecen ser una tabla replicada con las claves de url para uso del indexador, y también son las tablas con los desencadenantes relacionados con las reescrituras de URL.Una nota sobre el uso de TRUNCATE:
da un error debido a referencias de clave externa:
Ejecutar comandos truncar / eliminar como este funcionaría:
fuente
SET FOREIGN_KEY_CHECKS = 0;
antes deTRUNCATE ...
ySET FOREIGN_KEY_CHECKS = 1;
en la parte inferior, despuésDELETE FROM ...
La respuesta simple es No, no es seguro truncar estas tablas, al menos si no sabe la consecuencia:
Sin embargo:
Catalog -> Url Redirect
estará vacío (en EE 1.13.1)(que parece un error deacuerdo con Magento, este es el comportamiento esperado en 1.13.1) (ver también el comentario a continuación)fuente
Catalog -> Url Redirect
muestra solo reescrituras que no son del sistema. Entonces, solo tus reescrituras personalizadas se mostrarán aquí. es decir, filas conenterprise_url_rewrite.system = 0
.