Пройдите свой путь через this article, чтобы убедиться, что у вас нет недоразумений в том, что делают настройки, как они работают, и как вы можете их устранить.
Как только вы это сделали, из всего, что вы сказали в этом вопросе, это звучит так, будто вы получаете свой «установленный» ресурс, но ваш сценарий установки никогда не запускается. Я думаю, что номер версии вы использовали в
//0.0.1 is your version number
mysql4-install-0.0.1.php
не совпасть с версией модуля
<modules>
<Nie_Nie>
<version>?.?.?</version>
</Nie_Nie>
</modules>
Они должны соответствовать для сценария для запуска. I think Magento достаточно умен, чтобы запускать предыдущие версии, если он их найдет, но код в настройках ресурсов - это тот, который трудно выполнить, поэтому я всегда убеждаюсь, что они совпадают.
Независимо от того, как вы можете видеть, какие файлы magento пытается запустить, когда он запускает ваш ресурс установки. Удалите все записи из core_resource
, связанные с вашим модулем. Очистите кеш.Затем найдите следующие места в классе настройки
File: app/code/core/Mage/Core/Model/Resource/Setup.php
protected function _modifyResourceDb($actionType, $fromVersion, $toVersion)
{
...
$sqlFilesDir = Mage::getModuleDir('sql', $modName).DS.$this->_resourceName;
if (!is_dir($sqlFilesDir) || !is_readable($sqlFilesDir)) {
return false;
}
...
$sqlDir->close();
if (empty($arrAvailableFiles)) {
return false;
}
...
$arrModifyFiles = $this->_getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrAvailableFiles);
if (empty($arrModifyFiles)) {
return false;
}
, а затем изменить их, чтобы добавить некоторые временные исключения отладки
if (!is_dir($sqlFilesDir) || !is_readable($sqlFilesDir)) {
throw new Exception("$sqlFilesDir not found");
return false;
}
...
if (empty($arrAvailableFiles)) {
throw new Exception("No files found to run");
return false;
}
...
$arrModifyFiles = $this->_getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrAvailableFiles);
if (empty($arrModifyFiles)) {
throw new Exception("No valid upgrade files found to run for ");
return false;
}
throw new Exception("If you're getting here, we have a file. Remove your exceptions here and place one in your installer to make sure it's the one you think it is.");
Обновить страницу и вы получите текст исключения жалуются на то, что Magento не может найти. Этого должно быть достаточно, чтобы помочь вам отследить, какой скрипт установщика Magento пытается запустить, но не смог найти. Не забудьте удалить строку своего модуля в core_resource
и очистить кеш. (Magento кэширует, какие модули должны проверять на установку/обновление)
Если это не сработает, начните копаться в логике applyAllDataUpdates
и выяснить, почему класс не включает ваш файл установщика.
Пожалуйста, пост местоположения вашего скрипта установки –
/app/code/local/Nie/Nie/sql/nie_setup/mysql4-install-0.0.1.php –
Убедитесь, что корпус вашего имени модуля внутри имеет то же самое в качестве вашего в настройках ресурсов. Я просто столкнулся с этим вопросом. –