Я понимаю, что вы можете использовать установочные сценарии для вашего собственного модуля, объявив их в файле etc / config.xml вашего модуля в следующем <global>
месте:
<resources>
<catalog_setup>
<setup>
<module>Mage_Catalog</module>
<class>Mage_Catalog_Model_Resource_Setup</class>
</setup>
</catalog_setup>
</resources>
Некоторые модули затем используют файл, в mysql4-install-0.0.1.php
то время как другие используют install-0.0.1.php
. Так, когда я использую mysql4 перед именем файла и когда я не использую это?
Кроме того, что я могу сделать, когда мой скрипт установки не запущен, чтобы выяснить, почему это не так?
magento-1
configuration
sql
installation
setup
mpaepper
источник
источник
Ответы:
Начиная с версии Magento 1.6 и выше, вам больше не нужно использовать mysql4 из-за дополнительной поддержки нескольких СУБД.
Чтобы выяснить, почему он не работает, вы можете проверить файл exception.log или system.log, возможно, Magento не найдет ваш класс установки. Однако создать скрипт установки довольно просто.
Также проверьте руководство Алана Шторма: http://alanstorm.com/magento_setup_resources
источник
Как и @erfan saif, magento получил поддержку multi-rdbms с 1.6. Но в реальном мире я знаю только бэкенды mysql.
Важно понимать, что magento может иметь разные сценарии установки / обновления / данных для разных бэкэндов. Если вам нужен специальный Index-Type, который поддерживается mysql, но не стандартным SQL, вы можете реализовать скрипт mysql4-install-1.0.0.php. Если ваш скрипт является общим, используйте install-1.0.0.php
Если вы загляните в Mage_Core_Model_Resource_Setup, я найду две интересные вещи:
Приложение / код / ядро / Mage / Ядро / Модель / Resource / Setup.php: 488
Будьте осторожны, если вы назовете свой скрипт,
.sql
он вызывается непосредственно в базу данных:Я предпочитаю die ('sadf') в начале моего файла установки / обновления, потому что я могу запустить его несколько раз, если он вызывается, так что я могу проверить, все ли переменные, которые я установил, верны, прежде чем что-либо изменить в база данных. Если я вижу «sadf» на экране, я знаю, что скрипт запущен.
Я magento загружает (вместо sadf), пришло время для отладки, две мои стандартные ошибки:
sql/
забытом, например,sql/install-1.0.0.php
вместоsql/my_module_setup/install-1.0.0.php
И потому что я думаю, что это подходит здесь, будьте осторожны с именами ваших переменных: http://blog.fabian-blechschmidt.de/articles/file-kills-setup-script.html
UPDATE @ rouven-rieker добавил через твиттер, что данные и отсутствующий mysql4 были добавлены в magento 1.6. Если вам нужна обратная совместимость, будьте осторожны!
источник
Если ваш скрипт не запущен, вам также следует проверить, совпадает ли версия ваших модулей с версией вашего скрипта setup.
источник
Если ваш скрипт не работает, сбросьте номер версии в core_resource и очистите кеш. Magento кеширует версии заранее, кажется, и пропускает скрипты установки, когда все кеши включены. Поскольку все мы работаем с отключенным кешем, мы можем этого не заметить, но установка на Live-сайт с помощью загрузки не будет работать, если кеш включен.
источник