Je me rends compte, vous pouvez utiliser des scripts de configuration pour votre propre module en les déclarant dans le fichier etc / config.xml de votre module dans l' <global>
espace comme ceci:
<resources>
<catalog_setup>
<setup>
<module>Mage_Catalog</module>
<class>Mage_Catalog_Model_Resource_Setup</class>
</setup>
</catalog_setup>
</resources>
Certains modules utilisent alors le fichier mysql4-install-0.0.1.php
alors que d'autres l'utilisent install-0.0.1.php
. Alors, quand dois-je utiliser le mysql4 devant le nom de fichier et quand ne l'utilise-je pas?
De plus, que puis-je faire lorsque mon script d'installation n'est pas en cours d'exécution pour savoir pourquoi il ne l'est pas?
magento-1
configuration
sql
installation
setup
mpaepper
la source
la source
Réponses:
À partir de Magento 1.6 et versions ultérieures, vous n'avez plus besoin d'utiliser mysql4 en raison de la prise en charge multi-RDBMS ajoutée.
Pour savoir pourquoi il ne fonctionne pas, vous pouvez vérifier le fichier exception.log ou system.log, peut-être que Magento n'a pas trouvé votre classe de configuration. La création d'un script d'installation est cependant assez simple.
Consultez également le guide d'Alan Storm: http://alanstorm.com/magento_setup_resources
la source
En tant que @erfan saif, magento a pris en charge plusieurs rdbms depuis 1.6. Mais dans le monde réel, je ne connais que les backends mysql.
Il est important de comprendre que magento peut avoir différents scripts d'installation / mise à niveau / données pour différents backends. Si vous voulez un type d'index spécial qui est supporté par mysql mais pas par standard-SQL, vous pouvez implémenter un script mysql4-install-1.0.0.php. Si votre script est générique, utilisez install-1.0.0.php
Si vous jetez un œil à Mage_Core_Model_Resource_Setup, je peux trouver deux choses intéressantes:
app / code / core / Mage / Core / Model / Resource / Setup.php: 488
Attention, si vous nommez votre script,
.sql
il est appelé directement dans la base de données:Je préfère un dé ('sadf') au début de mon fichier d'installation / mise à niveau, car je peux l'exécuter plusieurs fois s'il est appelé, donc je peux vérifier si toutes les variables que j'ai définies sont correctes, avant que quoi que ce soit ne soit changé dans la base de données. Si je vois le «sadf» à l'écran, je sais que le script est en cours d'exécution.
Je charge magento (au lieu du sadf), il est temps de déboguer, mes deux erreurs standard sont:
sql/
oublié, par exemplesql/install-1.0.0.php
au lieu desql/my_module_setup/install-1.0.0.php
Et parce que je pense que cela convient ici, soyez prudent avec vos noms de variables: http://blog.fabian-blechschmidt.de/articles/file-kills-setup-script.html
UPDATE @ rouven-rieker a ajouté via twitter que les données et mysql4 manquants ont été ajoutés dans magento 1.6. Si vous avez besoin d'une compatibilité descendante, faites attention!
la source
Si votre script n'est pas en cours d'exécution, vous devez également vérifier si la version de vos modules correspond à la version de votre script d'installation.
la source
Si votre script n'est pas en cours d'exécution, réinitialisez le numéro de version dans core_resource et videz le cache. Magento met en cache les versions à l'avance, il semble et manque d'exécuter des scripts de configuration lorsque tous les caches sont activés. Parce que nous travaillons tous avec le cache désactivé, nous ne le remarquerons peut-être pas, mais l'installation sur le site Live via le téléchargement ne fonctionnera pas si le cache est activé.
la source