Question

Lors de la manipulation de différents environnements de dev et de vivre des sites, comment passer sur les changements qui ne sont enregistrées dans la base de données pour les autres de l'environnement sans avoir à exporter le tout base de données?Disons, par exemple, j'ai désactivé l'extension, a changé le contenu d'un bloc statique, a créé une nouvelle statique de la page cms, a ajouté un nouveau mode de transport, la taxe de règle, ou ce que vous avez. Comment puis-je passer sur les petites modifications de ce genre pour le site en ligne sans avoir à exporter et d'importer la totalité de la base de données? Évidemment il y a des informations sur le site en direct que je ne voudrais pas remplacée.

Je suis sûr que quelqu'un d'autre doit avoir exécuté ce, spécialement lors de l'utilisation de le contrôle de version.Nous avons mis en place git, mais qui ne fonctionne que pour les fichiers les changements de niveau.Les fichiers dans les deux environnements peuvent être exactement le même, mais certaines config dans la base de données peut changer si ils se comportent différemment.

J'ai pu garder la trace de tous les changements que je fais dans le panneau d'admin, et de les reproduire dans l'autre environnement, mais qui semble très judicieux.Le nombre de modifications peut être assez grande, comme nous sommes en permanence à peaufiner le site de notre satisfaction.Par ailleurs, d'autres développeurs travaillent ainsi, et nous avons même mis en place un environnement de la sous-traitance des développeurs et de l'appui technique de l'extension Magento fournisseurs.Je ne peux pas garder une trace de tout ce qu'ils font.

J'ai vu des tonnes de messages sur l'exportation de produits, de sorte que n'est pas vraiment le problème.Je voudrais l'inverse. Peut-être que quelqu'un a fait une liste de toutes les tables nécessaires pour cloner un site Magento sans les produits et les commandes et renseignements sur les clients. Juste tout ce qui est configurable dans le panneau d'admin.

Personne n'a fait ça avant?


Mise à JOUR: Pour les lecteurs, je suis marquage @mbalparda la réponse de manuel de déployer des fichiers comme acceptée jusqu'à ce que quelque chose d'autre vient jusqu'à, comme requis.Je vais appliquer les règles de conservation des journaux sur les changements dans le panneau d'admin de tous les développeurs nous avons donc une liste unifiée à la fin.Ce n'est pas vraiment la réponse à la question mais c'est la méthode que je vais utiliser pour résoudre ce jusqu'à ce que je trouve un meilleur processus.

Était-ce utile?

La solution

core_config_data et core_resources sont deux bons endroits pour commencer. CMS_ * doit avoir la plupart des informations pertinentes sur les blocs, les CMS et les widgets. Outre ces tables, la plupart des tables Core_ * * ont des informations pertinentes sur le site Web que vous utilisez.

La liste est loin d'être terminée.

Une autre bonne option est de conserver une version de la base de données dans Git et d'utiliser un outil de diff pour voir ce qui a changé entre les versions, mais peut avoir des problèmes de sécurité depuis que des informations personnelles pourraient être dans le repo.

Une bonne pratique J'utilise souvent est d'avoir un fichier de déploiement manuel pour enregistrer tous les modifications que nous avons apportées dans un autre environnement et une fois le code déployé, l'étape suivante consiste à vérifier le fichier manuel de déploiement pour voir si quelque chose doit être Fini. Ceci est utilisé dans des cas où toutes les modifications ne peuvent pas être effectuées avec des mises à jour SQL / DATA, la méthode Magento ordinaire de créer des modifications SQL / DATA.

En tant que note, déplacer les bases de données entre les environnements n'est pas toujours le meilleur choix puisque les modifications d'un administrateur que vous avez apportées dans le site en direct seront perdues si elles ne sont pas répliquées dans la DB que vous utilisez dans l'autre environnement.

Autres conseils

La base de données Magento n'est pas votre habitude de la base de données.Il est vaste et complexe.
Les pièces en mouvement d'un environnement à un autre n'est pas une mince tâche.
C'est pourquoi j'ai l'habitude évitez de changer les paramètres de configuration ou d'ajouter des blocs et/ou les pages manuellement.
Je laisse le client de le faire uniquement sur le serveur live.

Ce que je dois faire, tout en développant je le fais via des scripts de mise à niveau.
De cette façon, tout est versionné et portable.
Je sais que c'est une sorte de glisser pour écrire un script de mise à niveau juste pour le retrait de la liste du mode d'affichage pour les pages de produits par exemple, mais je n'ai pas trouver un meilleur moyen à ce jour.

Voici un petit exemple de comment vous pouvez modifier un paramètre de configuration via le script de mise à niveau.

La suite permet le branchement d'expédition:

$path = 'carriers/tablerate/active';
$config = Mage::getModel('core/config_data')->load($path, 'path');
$config->setValue('1')->setPath($path);
$config->save();

Je suppose que cela pourrait fonctionner si vous le mettez dans un script de mise à niveau à l'intérieur de sql/[resource_name_here] mais pour la manipulation de données-je utiliser data/[resource_name_here].

Voici un autre script qui ajoute un bloc statique.

$block = Mage::getModel('cms/block');
$block->setTitle('Some title here');
$block->setIdentifier('identifier_here');
$block->setContent('This is the content');
$block->setStatus(1);//enabled
$block->setStores(array(0)); //make it available in all stores
$block->save();

Vous pouvez vous le faire pour chaque entité que vous avez.

J'ai trouvé un atout charmant pour exporter et importer des paramètres de configuration https://github.com/zookal/Harrisstreet-Impex

Cela fait beaucoup de ce que vous êtes gars et moi recherchez je pense.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top