Почему Magento 2.1.2 cron: run дает неопределенный индекс: jobs?

13

Когда работает:

/usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log

Я получил:

[Exception]                                                                  
  Notice: Undefined index: jobs in /home/ubuntu/repo/project/vendor/magento/
               module-cron/Model/Config/Converter/Db.php on line 39  
Стиви Джи
источник
Что говорит cron log?
Айвис Звездовс
Есть ошибка в update.log:setup-cron.ERROR: Database 'my-db' does not exist or specified database server user does not have privileges to access this database.
Stevie G
Проблема заключалась в том, что инструмент переноса данных добавлял записи cron на неправильном уровне: как и delete from core_config_data where path like 'crontab/jobs%'; community.magento.com/t5/Technical-Issues/…
Stevie G
Исправлена ​​первая проблема, но теперь работает php /var/www/shootingstuff/update/cron.phpдаетPHP Warning: require_once(/dir/update/vendor/autoload.php): failed to open stream: No such file or directory in /dir/update/app/bootstrap.php on line 15 PHP Fatal error: require_once(): Failed opening required '/dir/update/vendor/autoload.php' (include_path='.:/usr/share/php') in /dir/update/app/bootstrap.php on line 15
Stevie G

Ответы:

35

В моем случае это было вызвано перемещением некоторых заданий cron из Magento 1 в core_config_data. Magento 2 ожидает, что формат будет crontab/{groupname}/jobs/{code}, в то время как импортированные пропускают имя группы (то есть по умолчанию). Если это ваш случай, вы можете удалить неправильные записи core_config_dataили обновить их, чтобы отобразить новые задания cron.

rcason
источник
3
Возможно, вам придется удалить все записи crontab из core_config_dataтаблицы, а затем запустить php bin/magento setup:upgrade.
Ндианабаси
1
bin/magento ca:fl configмне было достаточно
Shapeshifter
Вы правы! Это действительно есть в core_config_data, так как этот сайт, на котором я работаю, был ранее перенесен с M1 на M2.1, еще раз спасибо!
MazeStricks
2
Удалил 202 записи :) DELETE FROM core_config_data WHERE path LIKE 'crontab/%' AND path NOT LIKE 'crontab/default%' AND config_id > 0Мне нужна последняя часть AND config_id > 0из-за безопасного режима.
Дамодар Башял
1
Спасибо @DamodarBashyal за обмен запросами.
Чираг Додия
4

У меня такая же ошибка. Это ошибка при переходе с Magento 1 на Magento 2. Поэтому я исправил это, удалив все строки, начинающиеся с «path» с помощью «crobtab» в таблице «core_config_data».

Затем запустите: php bin / magento setup: обновить

И ошибка исправлена. Magento 2 снова сгенерирует все cronjobs.

Энди Ким Лонг
источник
спасибо, это сработало для меня.
Биплауб разгром
3

Как сказал rcason: эта проблема связана с миграцией из Magento 1 в Magento 2. После удаления из «core _config_data» всех значений, начинающихся с crontab / default ... (в разделе «Config Path»), проблема решена, и задания Mron cron Теперь бегите без проблем.

Исаак
источник
0

Похоже, у вас неправильный формат конфигурации cron в базе данных. Попробуйте очистить cron_scheduleтаблицу и попробуйте снова запустить cron.

Также, пожалуйста, проверьте настройку cron в конфигурации системы.

Канди
источник
1
Там нет ничегоcron_schedule
Stevie G