Comment puis-je effectuer des mises à jour sur un site, sur une copie de développement, mais revenir en arrière sans remplacer la base de données évolutive du site en direct?

20

J'ai essayé d'être aussi descriptif que possible dans le titre, et je sais que cette question a déjà été posée sous diverses formes, mais je n'ai pas trouvé de bonne réponse et c'est d'imaginer que personne n'a résolu ce problème.

C'est simple, une fois qu'un site WP est en ligne, s'il n'est pas statique, il met à jour sa base de données en ajoutant de nouveaux messages, de nouvelles commandes de woocommerce, de nouveaux comptes d'utilisateurs, etc.

Si je souhaite apporter des modifications et des mises à jour majeures au site, la façon la plus simple et la plus simple de le faire est de faire une copie soit sur une installation locale, soit sur un autre domaine de développement, et d'y apporter toutes les modifications. Une fois toutes les modifications effectuées, je veux les copier sur le site en direct.

Si les modifications concernent uniquement les fichiers, comme le thème et le CSS, c'est assez simple. Cependant, si les changements impliquent des changements dans la base de données, comme l'ajout de nouveaux plugins et l'ajout de contenu qui se connecte / se rapporte à ces plugins, alors je ne peux plus simplement recopier le site, car il remplacera toutes les nouvelles modifications ajoutées au live base de données du site. tous les nouveaux messages, les nouvelles commandes, les nouveaux téléchargements d'images seront tous effacés.

Maintenant, je sais que différents scénarios de cas ont des solutions différentes, mais n'y a-t-il pas une méthode qui traite tous les cas?

Par exemple, si les seules modifications apportées au site en direct étaient de nouveaux messages, je peux exporter et importer les messages vers le site de développement, puis déplacer l'ensemble du site. Même chose avec certains autres articles, mais pas avec tous les types d'articles. Et l'autre problème avec cela est que la fonction d'exportation et d'importation dans wordpress est épouvantable. C'est tellement rudimentaire et vous avez très peu d'options pour sélectionner et exporter uniquement des éléments spécifiques. J'ai probablement essayé tous les plugins "importation / exportation avancés" et rien n'a encore résolu ce problème.

Donc, dans un autre fil, quelqu'un a souligné ce plugin pour installer et travailler sur un thème sur le site en direct, tandis que les utilisateurs réguliers voient toujours le thème existant, mais cela ne résout toujours pas tous les types de changements. parce que si vous souhaitez apporter des modifications au contenu, disons le pied de page ou le menu de navigation, ce sont des choses qui se refléteront toujours dans le thème / site visible existant et pourraient sembler correctes sur le nouveau thème de test mais pas sur le thème en direct.

N'y a-t-il aucun moyen de développer une "branche" d'un site sur le même site / base de données puis de basculer? ou n'y a-t-il aucun moyen de développer sur un site de développement mais de fusionner réellement les bases de données de manière non destructive? Si vous savez quels composants et choses vous avez affectés, n'y aurait-il pas moyen de le faire? ou auriez-vous besoin d'être un maître MySQL pour tenter une telle chose.

Je ne peux pas être le seul à avoir cette énigme. Je ne peux pas imaginer qu'il n'y ait pas de solution à ce problème. Comment cela peut-il être fait?

Merci d'avance.

James
la source
3
Tout le monde a ce problème et il n'y a pas de solution simple, gardez le code sous contrôle de révision, videz souvent sql sur un serveur intermédiaire, créez des verrouillages de maintenance pendant les migrations (5-10min).
Wyck
Je ne suis pas d'accord. Le plugin RAMP de CrowdFavorite est une solution simple pour ceux qui ont besoin de mettre en scène et de déployer du contenu. L'appeler une "solution simple" peut être un tronçon, mais c'est bien et tout développeur devrait être en mesure de le configurer (nécessite SSH et un accès MySQL à distance, etc.)
jb510
Quelqu'un a-t-il essayé Sitepush ? Cela ne me dérange pas de payer 250 $ pour Ramp si c'est une meilleure solution, mais il est difficile de voir de l'extérieur comment ces systèmes fonctionnent sans déploiement complet et test, je suppose.
James
Je n'ai pas utilisé sitepush. Il semble que cela pousse des bases de données complètes (comme Migrate WP DB Pro). C'est bon pour déployer un site statique, mais échoue sur une dynamique en direct (c'est-à-dire que de nouveaux messages / commentaires se produisent). RAMP gère réellement la différence entre les bases de données et les fusions, et ne remplace pas la base de données active.
jb510
Vous voudrez peut-être utiliser DBV PHP , un projet open source, mettant votre base de données sous contrôle de version. Il a même une interface utilisateur pour faciliter la gestion. Une autre option serait de passer par exemple à Laravel, qui a un outil de migration intégré à son application CLI.
kaiser

Réponses:

2

Ce n'est vraiment pas un moyen facile de faire ce que vous voulez faire, mais ce que je ferais, c'est de faire un instantané de votre site, de mettre en œuvre les changements yoru et si quelque chose freine, restaurez et réessayez. Cela pourrait être en panne pendant une heure, mais je l'ai fait récemment lorsque j'ai en quelque sorte briqué un site sur lequel je travaillais. Ce n'est peut-être pas la "bonne" façon de résoudre le problème, mais pour moi, cela fonctionne. Bonne chance.

user57081
la source
Comment est-il possible que l'équipe WP n'ait pas réfléchi à une manière professionnelle de le faire? c'est 2018 !!
asael2