Lequel s'exécute en premier, le script d'installation-mise à niveau ou le script de mise à niveau des données?

23

Je mets à niveau un module vers la version, disons 0.1.3. Disons que j'ai ces fichiers:

data/mymodule_setup/data-upgrade-0.1.2-0.1.3.php
sql/mymodule_setup/upgrade-0.1.2-0.1.3.php

Le script de mise à niveau SQL s'exécutera-t-il en premier? Le script de mise à niveau des données nécessite une colonne qui sera ajoutée dans l'autre script, donc s'il n'est pas encore là, il échouera.

Vic
la source

Réponses:

21

La commande est

  1. installer
  2. installer le script de mise à niveau
  3. script de données
  4. script de mise à niveau des données

Plus d'informations peuvent être trouvées ici: http://inchoo.net/magento/magento-install-install-upgrade-data-and-data-upgrade-scripts/

ou http://www.sitepoint.com/magento-install-upgrade-data-scripts-explained/

Ou merci à @RickBuczynski le lien suivant: http://vinaikopp.com/2014/11/03/magento-setup-scripts/

Addition: Si vous avez des modules qui dépendent les uns des autres, vous devez savoir que lorsque plusieurs modules sont installés / mis à jour en même temps, tous les scripts de mise à niveau normaux s'exécutent d'abord, puis tous les scripts de mise à niveau des données. Chacun dans l'ordre de chargement du module, c'est-à-dire en ce qui concerne les dépendances.

JELLEJ
la source
J'ai déjà lu ces deux articles, mais il n'y a rien dans l'ordre d'exécution. Votre réponse est logique, mais pouvez-vous confirmer par des preuves que c'est le véritable ordre?
Vic
2
J'ajouterais également cette URL pour référence: vinaikopp.com/2014/11/03/magento-setup-scripts Semble être la meilleure information détaillée que j'ai jamais lue sur le sujet.
Rick Buczynski
@Vic voir le lien de Rick.
JELLEJ
@RickBuczynski wow, article étonnant!
JELLEJ
2
Non, tout va bien. Les 3 ressources sont utiles, selon votre niveau d'expérience dans ce domaine. J'obtiendrai mes points une autre fois :-p
Rick Buczynski
2

le magento suit cet ordre

  1. installer
  2. installer le script de mise à niveau
  3. script de données
  4. script de mise à niveau des données

l'intéressant commence si

dans le premier script, vous insérez des données (créez un site Web)

et dans le deuxième script, vous lisez ces données (la catégorie trouve le site Web)

  1. les scripts d'installation de magento sont exécutés dans une seule transaction
  2. les scripts de mise à niveau de magento sont exécutés dans une autre transaction
  3. le niveau d'isolation de transaction mysql par défaut REPEATABLE READ

s'amuser

Oleksandr Makhno
la source