Установка Magento CLI: в таблице «core_resource» столбец «data_version» остается нулевым, почему?

#php #magento #installation #command-line-interface

#php #magento #установка #интерфейс командной строки

Вопрос:

я пытаюсь установить Magento 1.5.1 через cli.

Насколько я вижу, все таблицы базы данных созданы с соответствующим содержимым, но в таблице core_resource я вижу data_version , что сообщение из sql dir (mysql4-data-upgrade … files) отсутствует. Во всех строках core_resource столбца data_version значение null. Почему?

CLI вызывается в соответствии с приведенными здесь инструкциями: http://www.magentocommerce.com/wiki/groups/227/command_line_installation_wizard

A Mage::app()->cleanCache(); после установки не помогает.

Я могу это исправить, выполнив вход в серверную СИСТЕМУ / УПРАВЛЕНИЕ КЭШЕМ и обновив CacheType=CONFIGURATION. Но как это сделать через cli?

Ответ №1:

Установщик никогда не вызывает applyAllDataUpdates() для завершения установки. Install.php доверяет тому, что загрузчик magento использовался ранее, что вызывает applyAllDataUpdates().

Но в моем случае я не использовал загрузчик magento, потому что я установил экземпляр magento из локального репозитория git (для buildserver, dev machine и т. Д.) С помощью моего собственного ant-скрипта. Я предположил, что установка cli не зависит от загрузчика (по дизайну), но здесь обнаружена «скрытая» зависимость. Запустив только установщик cli, настройте расширения без обновления «data_version».

Обычно вы можете доверять первому http-вызову интерфейса / серверной части magento, который вызывает applyAllDUpdates() и applyAllDataUpdates(), если есть ошибка с конфигурацией (в кэше), но в этом случае кеш был успешно создан (extension config) установщиком — поэтому никаких applyAllDataUpdates() запускается.

Я запускаю модульные тесты, интеграционные тесты и функциональные тесты (в этой цепочке) после сборки magento (без использования загрузчика). Я получаю странное поведение, если «data_version» не загрязнен. Мое решение — добавить:

 Mage_Core_Model_Resource_Setup::applyAllUpdates();
Mage_Core_Model_Resource_Setup::applyAllDataUpdates();
  

для начальной загрузки моих модульных тестов.

Комментарии:

1. Хм, какую версию magento вы используете? В моем CE 1.6 appcodecoreMageInstallModelInstallerConsole.php я вижу Mage_Core_Model_Resource_Setup::applyAllDataUpdates(); строку # 381.