web-dev-qa-db-fra.com

WordPress et sauvegardes MySQL automatisées sur un hôte différent

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?

2
Foo Bar

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:

  • exporter la base de données: wp db export <filename>
  • importer la base de données: wp db import <filename>
  • rechercher et remplacer en toute sécurité (y compris les données sérialisées): wp search-replace <search-string> <replace-string>

Donc, j'ai un script qui

  • exécute wp export sur un serveur distant via ssh
  • copie le fichier d'exportation SQL via scp sur ma machine locale
  • exécute wp import localement
  • exécute wp 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.

2
anu