Comment déployer des modifications de base de données de dev à production dans Magento

9

Je suis conscient que les modules ont des scripts d'installation et de configuration des données pour rendre la base de données portable du développeur à la production.

Mais dans notre cas, nous avons des développeurs d'interface utilisateur qui ajoutent des attributs et des produits via l'interface d'administration qui est stockée dans la base de données de développement.

Le jour de la sortie, nous ne pouvons pas répéter toutes les étapes que nous avons effectuées dans l'environnement de développement, car cela sera trop fastidieux et trop long.

Existe-t-il un moyen de gérer ces modifications de base de données lors du déploiement.

Pour l'instant, nous effectuons une différence entre la DB de développement et la BD de production et générons un SQL qui s'exécute le jour de la sortie. Mais cela est peu dangereux car la base de données de développement peut contenir des données transactionnelles de test et nous pouvons finir par verrouiller les tables transactionnelles dans prod si notre SQL a des instructions modifiant les tables transactionnelles.

Y a-t-il une meilleure pratique à ce sujet? Merci pour l'aide à l'avance

Jeetendra Pujari
la source

Réponses:

8

Il existe différentes extensions pour migrer des données entre des environnements, mais les utiliser, c'est se tirer une balle dans le pied. Vous ne voulez certainement pas visser votre environnement de production en cas de problème.

La seule bonne façon de migrer des données est d'utiliser des scripts de configuration.

Il permettra également de mettre en place de nouveaux environnements (par exemple pour les nouveaux poissons de votre équipe) qui seront à jour avec l'état actuel des choses.

Bonne question d'ailleurs.

user487772
la source
J'ai personnellement constaté que certains modules de Magento Connect ne sont pas toujours complètement compatibles en termes d'exécution de scripts de configuration à partir de zéro. Je dois encore déterminer exactement ce qui s'est passé, mais la configuration de notre magasin est dans un état tel que, à partir d'une base de données vide, les scripts d'installation entrent en conflit et le magasin ne peut pas démarrer la base de données vide. Afin de recommencer à zéro, nous aurions besoin d'appliquer les modules un par un dans l'ordre. Ou corrigez des bogues dans des logiciels que nous n'avons pas écrits.
nbering le
Comment mettez-vous dans un script les modifications apportées depuis le panneau d'administration de Magento? Par exemple: ajouter des attributs et des produits, ou modifier la configuration d'une extension?
Andrea
1
@Andrea vous ne faites tout simplement pas de changements dans le panneau d'administration de Magento. Tout à travers des scripts de configuration. Bien sûr, dans certaines occasions, si vous voulez essayer quelque chose, vous n'êtes pas sûr de changer quelque chose dans l'administrateur, mais dans ce cas, ces modifications doivent être annulées et appliquées à nouveau via le script de configuration.
user487772
En tant que FYI. Nous avons fini par utiliser des scripts de configuration pour la plupart des modifications. Heureusement, notre développeur d'interface utilisateur n'a pas hésité à faire des scripts de configuration une fois qu'il a compris. Vous pouvez également créer un ticket pour la création d'un nouveau script de configuration et l'attribuer à vos développeurs. Nous avons également une équipe marketing qui utilise la fonction CMS de magento. Au lieu de faire ces changements dans l'environnement de développement, nous leur avons demandé de faire ces changements directement dans la production. Nous avons ajouté un rôle CMS qui ne leur donnerait accès qu'aux fonctionnalités CMS uniquement. Nous publions ensuite occasionnellement les modifications CMS de Prod à Stage, puis QA et Dev à l'aide d'un script personnalisé.
Jeetendra Pujari