Magento зберігає багато даних у базі даних для оптимізації продуктивності вашого магазину. Однак, як тільки ви оновлюєте будь-які з цих даних, система починає їх індексувати, щоб відновити зміни в таблицях бази даних. Саме тоді в панелі адміністратора з'являється помилка "Один або кілька індексаторів недійсні. Переконайтеся, що ваше завдання cron Magento запущено".

Це одна з найпоширеніших помилок Magento, з якою стикаються всі користувачі Magento під час роботи з Magento.

Це може здатися просто дратівливим повідомленням адміністратора, але за цим стоїть щось більше. Сьогодні ви дізнаєтеся, чому з'являється повідомлення "Один або кілька індексаторів недійсні" та як ви можете легко виправити це з панелі адміністратора або через CLI.

Чому з'являється помилка "Один або кілька індексаторів недійсні"?

Оскільки Magento є складною системою, вона має спеціальну функцію для автоматичного планування та запуску завдань магазину — Завдання cron у Magento . Окрім надсилання розсилок та сповіщень, оновлення правил каталожних цін та курсів валют, cron-завдання також запускають переіндексацію.

Отже, зазвичай Переіндексація Magento запускається автоматично. Однак, якщо щось не так із завданнями cron, ви бачите помилку «Один або кілька індексаторів недійсні. Переконайтеся, що ваше завдання cron Magento запущено».

У цьому випадку вам доведеться переіндексувати вручну, щоб внести зміни до бази даних.

Виправлення помилки «Один або декілька індексаторів недійсні» в Magento

Щоб вирішити помилку «Один або декілька індексаторів недійсні», потрібно перевірити, чи правильно налаштовано режим переіндексації та завдання cron, і запустити переіндексацію.

1. Перевірте режим переіндексації в адміністративній панелі

Перейдіть до Система > Керування індексами та перегляньте індексатори та їх описи. Ви також можете переглянути режими індексаторів та змінити їх у випадаючому списку Дії .

  • Оновити під час збереження — Magento автоматично переіндексується після кожного оновлення даних.
  • Оновити за розкладом — переіндексація виконується завданнями cron відповідно до налаштованого розкладу.
  • Зробити індекс недійсним — вимикає індексатори.

 Керування індексами Magento

Також, якщо хочете, ви можете перевірити режим та стан індексаторів через CLI:

bin/magento indexer:status

 Стан індексаторів Magento

Примітка: якщо ви хочете змінити режим для індексаторів з адміністративної панелі або консолі, не забудьте перейти на режим розробника та вимкнути cron, щоб уникнути блокування бази даних.


Щоб змінити режим:

bin/magento indexer:set-mode {realtime|schedule} [indexer]
  • realtime — встановлює вказані індексатори для оновлення під час збереження
  • schedule — встановлює вказані індексатори для оновлення під час cron schedule
  • indexer — список індексаторів, розділених пробілами

2. Запустіть Reindex

Незалежно від режиму, ви можете переіндексувати Magento з адміністративної панелі або через командний рядок. Однак, деякі інші команди також стануть у пригоді.

Щоб переглянути всі індексатори в Magento:

php bin/magento indexer:info

Щоб переіндексувати всі індексатори Magento:

php bin/magento indexer:reindex

Щоб переіндексувати деякі конкретні індексатори:

bin/magento indexer:reindex [indexer]
e.g bin/magento indexer:reindex catalog_product_price

3. Перевірте завдання cron

Після запуску переіндексації Magento має створити завдання cron для цього конкретного завдання. На жаль, іноді не все йде так, як очікувалося, тому деякі завдання cron можуть бути відсутніми.

Щоб встановити відсутні завдання cron у Magento:

php bin/magento cron:install

Щоб запустити всі завдання cron у Magento:

php bin/magento cron:run

Ви також можете запускати cron-завдання вручну з панелі адміністратора , якщо хочете.

Після запуску завдань cron індексатори будуть переіндексовані, і помилка "Один або декілька індексаторів недійсні" в Magento 2 має бути вирішена. Крім того, якщо ви перейдете до Система > Керування індексами , ви побачите, що всі індексатори запущені.