Sei que você pode usar scripts de instalação para seu próprio módulo declarando-os no arquivo etc / config.xml do seu módulo dentro do <global>
espaço da seguinte forma:
<resources>
<catalog_setup>
<setup>
<module>Mage_Catalog</module>
<class>Mage_Catalog_Model_Resource_Setup</class>
</setup>
</catalog_setup>
</resources>
Alguns módulos usam o arquivo, mysql4-install-0.0.1.php
enquanto outros usam install-0.0.1.php
. Então, quando uso o mysql4 na frente do nome do arquivo e quando não o uso?
Além disso, o que posso fazer quando meu script de instalação não está em execução para descobrir por que não está?
magento-1
configuration
sql
installation
setup
mpaepper
fonte
fonte
Respostas:
A partir do Magento 1.6 e superior, você não precisa mais usar o mysql4 por causa do suporte a multi-RDBMS.
Para descobrir por que ele não está sendo executado, você pode verificar o exception.log ou system.log, talvez o Magento não tenha encontrado sua classe de configuração. Criar um script de instalação é bastante simples.
Verifique também o guia de Alan Storm: http://alanstorm.com/magento_setup_resources
fonte
Como @erfan saif, o magento tem suporte a multi-rdbms desde a versão 1.6. Mas no mundo real, eu sei apenas back-end mysql.
É importante entender que o magento pode ter diferentes scripts de instalação / atualização / dados para diferentes back-end. Se você deseja um tipo de índice especial suportado pelo mysql, mas não pelo SQL padrão, você pode implementar um script mysql4-install-1.0.0.php. Se o seu script for genérico, use install-1.0.0.php
Se você der uma olhada no Mage_Core_Model_Resource_Setup, posso encontrar duas coisas interessantes:
app / code / core / Mage / Core / Model / Resource / Setup.php: 488
Cuidado, se você nomear seu script
.sql
ele será chamado diretamente no banco de dados:Eu prefiro um dado ('sadf') no início do meu arquivo de instalação / atualização, porque posso executá-lo várias vezes se for chamado, para que eu possa verificar se todas as variáveis que defini estão corretas antes que qualquer coisa seja alterada. o banco de dados. Se eu vir o 'sadf' na tela, eu sei, o script está sendo executado.
Eu carrego magento (em vez do sadf), é hora de depurar, meus dois erros padrão são:
sql/
Esqueci o diretório , por exemplo, emsql/install-1.0.0.php
vez desql/my_module_setup/install-1.0.0.php
E como acho que se encaixa aqui, tenha cuidado com os nomes das variáveis: http://blog.fabian-blechschmidt.de/articles/file-kills-setup-script.html
UPDATE @ rouven-rieker adicionou via twitter que dados e mysql4 ausentes foram adicionados no magento 1.6. Se você precisar de compatibilidade com versões anteriores, tenha cuidado!
fonte
Se o seu script não estiver em execução, verifique também se a versão do seu módulo corresponde à versão do seu script de instalação.
fonte
Se seu script não estiver em execução, redefina o número da versão em core_resource e limpe o cache. O Magento armazena em cache as versões antecipadamente, parece e não executa os scripts de instalação quando todos os caches estão ativados. Como todos trabalhamos com o cache desativado, podemos não perceber isso, mas a instalação no site ao vivo por upload não funcionará se o cache estiver ativado.
fonte