Comment mettre à jour Magento lorsque la structure de la base de changements entre les versions?
Toutes les méthodes de mise à niveau que j'ai vu (pas sûr de l'magento connect méthode) ne pas toucher à la base de données, seuls les fichiers et les & répertoires). Je suis sur mon premier Magento construire, mais je vois qu'ils ont changé la structure de répertoire avec les dernières mises à jour. Donc ma question est comment dois-je mettre à jour Magento afin de s'assurer de la base de données sera mis à jour?
Faire une installation propre de la nouvelle version et la copie sur votre thème et le code personnalisé ainsi que la réimportation des données n'est pas vraiment une option. Droit maintenant, magento a pas d'ordre à l'exportation/importation de fonctionnalités afin de une fois votre magasin va vivre il n'y a aucun moyen de les réimporter les données de la commande.
Magento modules ont la possibilité d'ajouter des "ressources du programme d'installation", qui sont similaires aux migrations dans d'autres cadres. Ils sont à la base de données des scripts qui s'exécutent automatiquement.
Magento modules ont la possibilité d'ajouter des "ressources du programme d'installation", qui sont similaires aux migrations dans d'autres cadres. Ils sont à la base de données des scripts qui s'exécutent automatiquement.
OriginalL'auteur Eric Bäcker | 2011-02-16
Vous devez vous connecter pour publier un commentaire.
Comme par @Anton réponse, la base de données mises à jour sont appliquées par le code PHP dans le Magento modules eux-mêmes.
Si vous regardez dans les modules de code (dire
DOCROOT\app\code\core\Mage\Catalog\
par exemple), vous pouvez voir un dossier appelésql\modulename_setup
qui contient de nombreux fichiers d'effectuer les mises à niveau de la base de données pertinentes à leur version du module.Noter que la version du module (spécifié dans la
etc/config.xml
pour ce module) ne sera pas toujours correspondre à l'ensemble de Magento version, bien que pour certains des principaux modules tels que Mage_Catalog, ils sont assez proches.Lorsque vous téléchargez le nouveau code sur votre serveur de système de fichiers, la prochaine fois que vous chargez un Magento page, le système va vérifier le numéro de version de la base de données à l'aide de la
core_resource
table dans mysql. Si elle est inférieure à la version figurant dans ce moduleconfig.xml
, puis Magento appliquera les fichiers dans lesql\modulename_setup
dossier dans l'ordre à ramener ledata_version
jusqu'à match du moduleversion
.Les fichiers dans le
sql
dossier contiennent souvent des DDL et DML, et peut être responsable de la modification de structure de la table, des clés, des relations et de l'insertion de données de fixture.Donc, la réponse courte à votre question "Comment voulez-vous mettre à jour", c'est de laisser Magento faire la mise à jour pour vous. En essayant de recréer manuellement toutes ces requêtes serait une recette pour un désastre, en particulier étant donné l'interdépendance entre les modules.
Une remarque importante - assurez-vous de sauvegarder votre base de données avant de mettre à niveau!!!
OriginalL'auteur Jonathan Day
Un processus que nous avons utilisé qui fonctionne:
De cette façon, vous gardez toutes les commande/produit/client/etc de données.
Bien sûr, vous devez vous assurer que vos modules et thèmes de travail avec la nouvelle version de Magento en premier, et les mises en garde habituelles pour la sauvegarde de première", etc etc...
OriginalL'auteur KingJackaL
Si vous mettez à niveau magento :
base de données mises à jour sont gérées par des versions des scripts d'installation
Pour illustrer cela:
Maintenant, vous pouvez faire un shell ou python , ruby ou que ce soit un script pour automatiser cela pour vous. Mon expérience me dit que tout cela (avec la génération de magento repos, la copie de base de données de dev, rsyncing fichiers nécessaires, la mise à niveau dans une boucle) prendra moins de tan à 5 minutes de la 1.3.2.4 à 1.5.0.1 si automatisé
J'ai édité la réponse à donner plus de conseils, n'est pas exacte entrée de ligne de commande, mais la vue d'ensemble du processus, car il est un peu varier en fonction de l'installation, mais vous pouvez obtenir le point
Pouvez-vous préciser où dans votre instruction de la base de données est en cours de mise à niveau?
MAgento met à niveau le schéma de base de données lorsque vous exécutez la mise à niveau.
OriginalL'auteur Anton S