Actuellement, j'utilise un script de vidage et valide la base de données dans le dépôt git.
--skip-extended-insert --skip-comments --skip-dump-date
signifie qu'un diff peut me donner une bonne idée de ce qui a changé, mais tout tombe si j'essaye de fusionner.
WP_SITEURL, WP_HOME et tous les autres endroits où Wordpress stocke les URL complètes doivent être mis à jour lors de l'importation vers un autre hôte (test, transfert, production)
Quelqu'un utilise-t-il une meilleure méthode?
Problèmes principaux:
- Wordpress stocke des URL complètes tout au long de la base de données (non portable)
- Beaucoup d'autres enregistrements non pertinents changent
- valeurs auto_increment (je les supprime simplement, mais j'ai rencontré des problèmes d'identification)
- horodatages (peuvent également être supprimés, potentiellement)
- enregistrements transitoires * ... aucune idée de ce qu'il faut en faire
Un processus qui a créé des migrations horodatées, avec seulement les éléments ajoutés ou supprimés, serait idéal ... mais je ne sais pas si c'est même possible?
database
migration
version-control
Jacob Dorman
la source
la source
Réponses:
Voici deux solutions possibles, les deux sont en fait des outils de contrôle de version MySQL génériques mais peuvent être adaptés à votre flux de travail:
dbv.php
Cet outil crée des «migrations», qui sont essentiellement des scripts SQL, à partir des modifications détectées dans la base de données. Ces scripts sont stockés dans un répertoire local et peuvent donc être validés dans votre VCS actuel (git, par exemple).
Il est utilisé via une interface Web PHP.
DBVC
Fondamentalement similaire à l'outil précédent, il est basé sur une interface de ligne de commande. Il est configuré via un fichier json. La principale différence est qu'il ne génère pas automatiquement les fichiers de migration.
Il y a un problème en suspens pour intégrer cela avec le précédent similaire, c'est donc quelque chose à rechercher.
Plugins Wordpress
Quelques plugins qui pourraient aider à la création d'un workflow reproductible:
la source
Je fais ça sur MYSQL.
Il place tous les schémas et données des tables dans leur propre fichier afin que je puisse facilement voir ce qui a changé.
Contrairement à la plupart des autres solutions de ce fil, cette solution obtient les données, ce qui est important pour un CMS.
Cette solution n'utilise aucun outil, juste un script de ligne de commande.
edit: J'ai trouvé que mon ancien code avait un bug où l'ordre d'importation était important. enlever le
--compact
drapeau corrige le bug.Code plus ancien
et voici comment importer
la source