Je cherche à mettre en place un flux de travail de développement -> staging -> production, et le plus gros problème jusqu'à présent est de savoir comment synchroniser les bases de données.
À cette fin, j'essaie de déterminer exactement quelles actions affecteront le système de fichiers, la base de données ou les deux. Voici comment je pense que cela fonctionne. S'il vous plaît, corrigez-moi si je me trompe et dites-moi si mes réponses douteuses sont correctes!
Presque tout est stocké dans la base de données (la plupart du temps dans la table {table_prefix}_options
), de sorte que chaque action répertoriée par vous affectera la base de données.
Pour le prouver, essayez d'activer le plug-in, puis renommez ce dossier. Dans WordPress, vous verrez que le plugin a été désactivé, car il n'existe pas (la liste des plugins activés est stockée dans la base de données). La mise à niveau de WordPress affectera également la base de données - par exemple, l'ajout de nouvelles tables (WP 4.4 a ajouté term meta table et les fonctions permettant de les gérer).
Votre approche est fausse. Si vous souhaitez réellement définir un cycle de développement parfaitement approprié, vous ne faites simplement rien qui soit lié à la modification de la base de données dans le cadre de votre développement.
Vous ne pouvez pas suivre les modifications des bases de données de manière quelconque et vous ne pouvez pas fusionner les bases de données de manière automatique. Toutes vos modifications doivent être dans des fichiers de code (php, js, css, etc.), et votre code doit être dans GIT ou SVN, et le déploiement en production doit être simple.