Я успешно перенес каталог из Magento 1.9.2.3 в Magento 2.0.2. После миграции я сделал переиндексацию с помощью команды php bin/magento indexer:reindex
.
Все успешно переиндексируется, кроме индексов catalog_category_product
и catalog_product_category
, возвращающихся No such entity.
в shell и уведомлений Reindex Required
в admin. Я проверил, var/log/
но ошибок нет.
В результате товары добавляются в категории в бэкэнде, но категории отображаются пустыми в веб-интерфейсе.
Что может вызвать эту проблему? Как я могу отладить?
magento2
reindex
magento-2.0
migration
Жерар де Виссер
источник
источник
Ответы:
В дополнение к Рафаэлю:
Я отладил этот код с изменением конструктора исключений для целей отладки (либо с помощью xdebug, либо с помощью старых дампов). Измените конструкцию исключения на данный момент (файл
\lib\internal\Magento\Framework\Exception\NoSuchEntityException.php
)После этого поднимитесь на один стек и проверьте заданные аргументы (аргументы также доступны в отладочной трассировке, но выгрузка объектов magento не очень удобна для браузера).
Пришел к выводу, что
storeGroupRepository
он не может найти идентификатор группы. Окунулся в таблицы магазинов и увидел несколько строк в таблице магазинов, которые ссылались на astore_group
, которого не было вstore_group
таблице (группа магазинов не существует в соответствующей таблице).Удалил неисправные строки магазина, и ошибка исчезла с тех пор.
Но имейте в виду, что это также может быть в другой таблице / другой причине. например, веб-сайт, магазин или группа магазинов в этом случае. Так что это всегда маленький поиск, который вы должны выполнить самостоятельно.
Также выяснилось, что ссылок на эти магазины было довольно много, а также удалил их вручную в БД. Это может быть утомительной работой, но она решит проблему.
И не забудьте удалить свои хаки.
источник
Не уверен, что это слишком поздно, чтобы добавить, но когда у меня было это, это, казалось, было вызвано некоторыми идентификаторами сущностей, которые должны были быть установлены в 0.
Этот скрипт работал для меня:
Надеюсь, это поможет.
источник
Итак,
No such entity.
сообщение об ошибке приходит\lib\internal\Magento\Framework\Exception\NoSuchEntityException.php
.Этот класс является пользовательским классом исключений в Magento, и он часто используется в Magento 2.
Всякий раз, когда вы видите код вроде:
Или
Этот класс используется.
Проблема в вашем случае заключается в том, что трудно определить, откуда выбрасывается это исключение.
Таким образом, чтобы немного сузить его, вы можете начать отладку двух классов, связанных с вашими индексами, которые не работают:
Magento\Catalog\Model\Indexer\Category\Product
=> catalog_category_product indexMagento\Catalog\Model\Indexer\Product\Category
=> каталог_продукта_категория указательК счастью, второй расширяет первый, поэтому у вас есть одна отправная точка.
Вы должны иметь в виду, что каждый из этого класса индексатора использует классы строк действия для обработки переиндексации:
Magento\Catalog\Model\Indexer\Product\Category\Action\Rows
Magento\Catalog\Model\Indexer\Category\Product\Action\Rows
Для меня это то, где вы должны начать отладку, поскольку эти классы строк действий являются прямыми классами, которые переиндексируют эти два индекса.
Я действительно надеюсь, что это поможет вам найти вашу проблему.
источник
Это работало для меня после пробовать все.
Предполагая, что ваш сайт работает
Developer Mode
, вы можете изменить его наProduction Mode
и очистить / очистить кеш, а затем переключиться обратно наDeveloper Mode
.У меня была эта проблема во внешнем интерфейсе, поскольку я недавно переместил базу данных с одного сервера на другой. Мне удалось решить таким способом.
НАДЕЖДА ЭТО ПОМОГАЕТ НЕКОТОРЫМ.
источник
В основном то же самое
Magento 2 - Перемещение сайта - «Нет такого лица»
cd /magento-root-path/var
rm -rf *
cd ../
php bin/magento setup:upgrade
rm -rf ./var/di
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
chown -R www-data
,источник
Эта ошибка, в моем случае, была для установки с несколькими магазинами, с несколькими доменами. Magento усекает коды магазинов. Если вы отображаете домены для хранения кодов, убедитесь, что код магазина соответствует маршрутизации, указанной в index.php (или где бы вы ни отображали). В админке проверьте в разделе «Магазины» > « Все магазины ». Проверьте свой веб-сайт, магазин и магазин просмотреть коды магазина.
Как только я понял, что Magento обрезал код магазина, который я ввел, сделал ту же настройку в отображении, и все снова заработало.
источник