Il est généralement admis que les développeurs doivent tester les mises à jour via un site intermédiaire avant de les publier sur le serveur actif. Toutefois, lorsque les mises à jour de développement nécessitent des modifications dans Wordpress DB, les choses se compliquent car les utilisateurs du site actif mettent également à jour la base de données.
Le seul flux (confus) que je puisse imaginer est le suivant:
Inconvénients du flux ci-dessus:
Je me demande s’il existe un moyen plus automatisé d’atteindre cet objectif.
Qu'est-ce que tu penses?
EDIT, comme demandé, certaines solutions ont été proposées dans le passé mais aucune n’offre une solution définitive:
Les nouveaux fournisseurs d’hébergement qui s’intéressent spécifiquement à WordPress ont généralement des outils en place pour atténuer ces problèmes. Je mets mes clients sur Pantheon qui possède ce flux de travail soigné , où le code ne fait que monter (du développement à la production) et le contenu de la base de données descendant (à l'inverse du code). Copier une base de données de la production à la mise en scène se fait en un clic avec leur interface. Si ce flux de travail est respecté, cela élimine à peu près le problème de la faille dans la base de données de production, me permettant ainsi de toujours tester mes modifications sur un nouveau clone de données de base de données de production lors de la phase de développement.
Il n’est pas nécessaire d’utiliser Pantheon - vous pouvez adopter une approche similaire dans votre processus en utilisant vos propres outils (Git + un plugin de clonage de base de données tel que WP Migrate DB). Je trouve juste que cette façon fonctionne bien pour moi.
Question: pourquoi voudriez-vous mettre votre site de production en mode maintenance lors des tests de staging? Cela ne devrait pas être nécessaire dans la majorité des cas. Le seul cas auquel je peux penser est d'avoir un système très fragile très sensible aux données utilisateur supplémentaires, avec un bogue catastrophique à démarrer - mais cela indiquerait probablement un problème différent, plus important, qui nécessiterait repenser toute l'architecture de leur produit.
Jetez un coup d'œil à VersionPress qui intègre le versioning de GIT à l'ensemble du processus (fichiers et base de données)
Comme décrit sur leur site:
VersionPress fournit une mise en scène sans douleur . Cela signifie que vous pouvez facilement créer un environnement de test sécurisé pour vos modifications et les fusionner uniquement lorsqu'elles sont prêtes. La fusion est la clé Word ici - VersionPress gère les situations dans lesquelles votre site en direct présente un nouveau contenu de manière transparente.