Quelle est la meilleure procédure à suivre pour fusionner le travail effectué sur une copie de développement d’un site avec la copie de production en direct? Souvent, de nombreux nouveaux contenus ont été ajoutés au site depuis le début du développement des nouvelles fonctionnalités. Et la plupart des ajouts à un site impliqueront des modifications de la base de données. Il est donc facile de copier de nouveaux fichiers, mais qu'en est-il de la base de données? Comment fusionnez-vous vos modifications avec la base de données de production existante sans perdre le nouveau contenu ajouté depuis la dernière mise à jour du site de production? Y at-il des modules qui aident avec cela?
40
Réponses:
Pour les types de contenu, les vues et les modifications de structure sur le site dev, examinez l'utilisation de Fonctionnalités pour exporter la base de données en code.
Pour la migration de contenu, il existe de nombreuses options, mais pas une seule solution solide. Un exemple est la suite de déploiement .
la source
J'ai adopté fondamentalement deux écoles de pensée ici (une 3ème école de pensée, faisant des bases de données, je ne discuterai pas parce que la complexité est assez grande).
1) Déployez en supprimant la base de données de production et en important un mysqldump de la base de développement. Vous pouvez éventuellement exécuter au préalable une expression rationnelle recherchée / remplacée sur les liens absolus codés en dur qui font référence à l'URL dev dans la sauvegarde SQL. Après avoir importé la base de données dev dans prod, exécutez automatiquement les instructions SQL (généralement via un script) pour modifier tout paramètre différent de prod (par exemple, vous avez peut-être dans la table des variables certains paramètres de connexion nécessaires pour la connexion à des systèmes externes). changez pour pointer sur les systèmes externes prod au lieu de la version dev).
2) Utilisez le module Features , comme indiqué par budda, pour les paramètres d’administration, et utilisez le module Node Export pour l’exportation / importation de contenu en combinaison avec le module Delete All . Le flux de travail est donc:
Une note, je suggère fortement d'adopter un flux de travail standard, où le contenu ne va que dans un sens. Dev -> Prod ou Prod -> Dev (je préfère celui-ci).
Je l’ai fait, et je le fais sur certains grands systèmes, avec d’assez bons résultats, mais il y aura toujours plusieurs façons de trancher cette pomme, de choisir celle qui vous convient le mieux.
la source
Dump des bases de données de copie de site et de développement de site en direct dans un fichier SQL (utilisez les mêmes paramètres et paramètres pour les deux vidages).
Ensuite, comparez les deux fichiers SQL en utilisant un petit outil de comparaison, ExamDiff . Il affichera les différences de fichiers côte à côte avec différentes couleurs. Vous pouvez aussi sauter directement aux différences (sans défilement). Examinez les différences et ajoutez / modifiez des lignes dans le fichier SQL du site actif. Assurez-vous qu'il n'y a pas de chemin / URL absolu de l'environnement de développement dans ce fichier. Ça c'est fait! Il est temps de restaurer la base de données pour le site actif.
Facilitez-vous la vie:Dans un premier temps, ne sauvegardez que les tables modifiées. Par exemple, si vous avez modifié un module dans la copie de développement qui cible une table distincte, exportez uniquement cette table. Si vous n'êtes pas sûr d'une table en particulier, tout le dump de la base de données est correct.
la source