После нескольких испорченных импортов у меня осталась куча переписываний URL, которые мне нужно удалить.
Я использую Enterprise 1.13
Когда у меня возникла эта проблема в сообществе, я просто core_url_rewrite
обрезал и переиндексировал.
Однако в Enterprise я заметил, что существует ряд различных таблиц, которые управляют перезаписью.
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
Я в безопасности, чтобы обрезать их всех?
Я полностью ожидаю, что кто-то скажет мне, что я никогда не должен урезать эти таблицы, поэтому заранее извиняюсь за наивность.
magento-enterprise
url-rewrite
ee-1.13
JamesAllwood
источник
источник
core_url_rewrite
и все заработало.Ответы:
Мы в той же ситуации, что и вы, Джеймс. После долгих копаний вот что я придумал:
Теперь
core_url_rewrite
таблица устарела, вместо этого Magento EE 1.13 теперь сохраняет изменения вenterprise_url_rewrite
.Таблицы:
enterprise_*_category_rewrite
используйтеcatalog_*_entity_url_key
таблицы для перестройки двух таблиц перезаписи при запускеphp indexer.php --reindex catalog_url_*
Когда вы добавляете 'URL Redirect' в каталоге администратора-> URL Redirects для пользовательского URL, он добавляется в
enterprise_url_rewrite_redirect
таблицу, и флаг Magento, что индекс теперь устарел, вводится вenterprise_url_rewrite_redirect_cl
таблицу, которая при запускеphp indexer.php --reindex url_redirect
перестраиваетenterprise_url_rewrite_redirect_rewrite
таблицу.Быстрое примечание: любая таблица, заканчивающаяся на _cl, безопасна для усечения, «CL» обозначает «Журнал изменений» и используется Magento для проверки необходимости повторной индексации.
Что касается таблиц URL-ключей, я все еще немного не понимаю, почему есть две записи URL-ключей один в
catalog_*_entity_url_key
и один вcatalog_*_entity_varchar
(атрибут ID 90), но я предполагаю, что это то, что происходит:Когда вы создаете новый продукт / категорию, Magento использует имя для генерации url_key, который помещается в
catalog_*_entity_url_key
AND вcatalog_*_entity_varchar
, но основная таблица, используемая Magento, этоcatalog_*_entity_url_key
потому, что если вы урежете ее и запустите,php indexer.php --reindex catalog_url_*
вашиenterprise_*_category_rewrite
таблицы будут пустыми, а продукты / категории в во внешнем интерфейсе будут отображаться ужасные URL-адреса, т. е.http://example.com/catalog/product/view/id/123/etc/etc
(не дружественно к SOE). Я полагаю, что эти две таблицы связаны и используются для построенияenterprise_url_rewrite
таблицы, поскольку в этой таблице хранится «request_path», наиболее вероятно, url_key внутриcatalog_*_entity_varchar
таблицы и «идентификатор», который является основным Ключ URL изcatalog_*_entity_url_key
таблицы. Я могу быть совершенно не прав насчет таблиц url_key и varchar, так что я просто думаю вслух.В любом случае, чтобы успешно обрезать и перестроить все таблицы перезаписи, вы можете выполнить:
и затем запустите:
Если вы также усечете,
enterprise_url_rewrite_redirect
тогда вы потеряете все свои пользовательские перенаправления, которые видите в своей панели администратора, возможно, это ваша цель, так как у вас осталось множество бесполезных URL. Пока вы НЕ обрезаете таблицы '* _entity_url_key', все будет в порядке.Наша история немного отличалась, потому что у нас были дублированные URL-ключи и серьезные проблемы с названиями продуктов из импорта Excel после обновления до 1.13 с 1.11, поэтому я написал этот быстрый скрипт для сброса
catalog_product_entity_url_key
таблицы, а также ключей и путей URL-адресов вcatalog_product_entity_varchar
таблице с использованием продукта имена. Я приложил код ниже, но если вы используете его, используйте его на свой страх и риск.Код может быть настроен для использования метода Magentos formatKey здесь: http://www.magentocommerce.com/wiki/3_-_store_setup_and_management/seo/url_key_characters_conversion, к сожалению, я наткнулся на вики после того, как обновил все ключи, поэтому я не потрудился повторить обновление все снова
Надеюсь, это поможет :)!
источник
sudo php indexer.php --reindex catalog_url_catalog
должно бытьsudo php indexer.php --reindex catalog_url_category
.catalog/product/view/id/XXX/category/YYY
. Можете ли вы подтвердить, что это то же самое для вас? Я немного не понимаю этого ... Это ошибка или я что-то не так делаю? Я попытался сделать то же самое на новой установке 1.13.0.2, произошло то же самое. Перезаписывает все хорошо во внешнем интерфейсе, но никакая категория не установлена.Основываясь на том, что я видел, как возился с EE 1.13 в тестовой среде, и на быстрых маленьких тестах, которые я только что сделал, вы сможете просто обрезать эти таблицы и затем вручную перестроить все индексы URL из CLI.
Таблицы * _cl используются в TRIGGERS, найденных в
catalog_product_entity_url_key
таблице. Записи, которые они вставляют в эти таблицы * _cl, - это то, что, я думаю, используется для указания того, что необходимо переиндексировать после сохранения.Вот что я сделал. После использования инструмента CLI для перестроения индексов все оказалось хорошо. Усечение MySql ...
Тогда на CLI ...
Дайте нам знать ваши результаты ... как и Мариус, я еще не создал сайт EE 1.13 и имею только опыт возиться с ним со времен Imagine. :)
источник
enterprise_url_rewrite
vs,core_url_rewrite
как они были раньше. Вcatalog_*_entity_url_key
таблицах , как представляется, реплицируются таблица с URL-ключей для использования индексатор, и они также являются таблицы с триггерами , связанных с URL переписывания.Примечание относительно использования TRUNCATE:
выдает ошибку из-за ссылок на внешний ключ:
Выполнение таких команд усечения / удаления будет работать так:
источник
SET FOREIGN_KEY_CHECKS = 0;
доTRUNCATE ...
иSET FOREIGN_KEY_CHECKS = 1;
в самом низу, послеDELETE FROM ...
Ответ прост: нет, урезать эти таблицы небезопасно, по крайней мере, если вы не знаете последствия:
Тем не мение:
Catalog -> Url Redirect
будет пустым (в EE 1.13.1)(это выглядит как ошибка всоответствии с Magento, это ожидаемое поведение в 1.13.1) (см. также комментарий ниже)источник
Catalog -> Url Redirect
показывает только несистемные переписывает. Таким образом, здесь будут показаны только ваши пользовательские изменения. то есть строки сenterprise_url_rewrite.system = 0
.