Прочтите эту статью , чтобы убедиться, что у вас нет недопонимания относительно того, что делают установочные ресурсы, как они работают и как вы можете их устранять.
Как только вы это сделаете, из всего, что вы сказали в этой ветке вопросов, звучит так, как будто вы «устанавливаете» свой ресурс, но ваш скрипт установки никогда не запускается. Я предполагаю, что номер версии, который вы использовали в
//0.0.1 is your version number
mysql4-install-0.0.1.php
не соответствует версии вашего модуля
<modules>
<Nie_Nie>
<version>?.?.?</version>
</Nie_Nie>
</modules>
Они должны совпадать для запуска скрипта. Я думаю Magento достаточно умен, чтобы запускать предыдущие версии, если он их находит, но код в установочных ресурсах - это тот тип, которому трудно следовать, поэтому я всегда проверяю, совпадают ли они.
В любом случае, вот как вы можете увидеть, какие файлы magento пытается запустить, когда запускает ваш установочный ресурс. Удалите все записи из core_resource
, относящиеся к вашему модулю. Очистите кеш. Затем найдите следующие местоположения в классе установки
Приложение / код / ядро / Mage / Ядро / Модель / 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
и выясните, почему класс не включает ваш файл установщика.