Je vais avoir la configuration suivante. Un ordinateur de développement sur mon réseau local et un serveur de production avec un vrai domaine Internet. Le développement des fichiers PHP/CSS sur mon ordinateur de développement pour mon thème est géré avec git
. Je peux facilement les déployer sur le système de production. Jusqu'à présent, tout fonctionne bien.
Mais sur mon système de développement, je veux aussi toujours avoir un dump de base de données relativement nouveau de mon vrai système. Maintenant, le moyen le plus rapide et le plus sale serait de simplement écrire un travail cron pour faire un mysqldump
sur le serveur de production et un mysql < dumpfile
sur l’ordinateur dev. Mais puisque Wordpress contient les noms d’hôtes dans sa base de données, cela aboutirait à un système de développement qui ne fonctionnerait pas, car tous les liens seraient faux.
Je connais https://codex.wordpress.org/Moving_WordPress , mais la procédure à suivre nécessite beaucoup de procédures manuelles (édition de fichiers de configuration, etc.), il n’est donc pas bon de l’utiliser pour l’automatisation. Eh bien, faire beaucoup chmod
et sed
et mv
et ainsi de suite pourrait aussi être automatisé, mais cela semble plutôt "hacky".
Quel serait un moyen propre et correct de gérer de telles sauvegardes de base de données automatisées sans casser des choses?
Vous pouvez utiliser des plugins tels que BackupBuddy, mais je préfère écrire ce script et utiliser wp-cli , qui lit wp-config.php et signifie que vous ne l'utilisez pas. pas avoir à vous soucier des identifiants mysql.
wp-cli vous permet de:
wp db export <filename>
wp db import <filename>
wp search-replace <search-string> <replace-string>
Donc, j'ai un script qui
wp export
sur un serveur distant via sshwp import
localementwp search-replace
Vous pouvez ensuite l'ajouter à cron, mais je préfère l'exécuter manuellement - la synchronisation de la base de données de la production à mon environnement local prend moins d'une minute.