web-dev-qa-db-fra.com

Exportation WP base de données avec WP-CLI sur Vagrant Box

Problème

Maintenant que j'ai un nouvel environnement avec WP-CLI dbimport / export J'ai besoin d'importer une base de données à partir d'un site Web sur lequel WP-CLI n'a jamais été installé.

Question

Quelle est la meilleure méthode d'exportation non-WP-CLI pour l'importation WP-CLI?


Backstory: J'utilise WordPress Vagrant Environment de base pour des tests locaux et l'auteur a récemment ajouté WP-CLI . Plus je joue avec ça plus je suis amoureux. Je suis même allé jusqu'à créer un script bash pour créer de nouvelles boîtes Vagrant en utilisant simplement un nom.


Est-il préférable de faire une exportation au format WXR via le panneau WordPress Export ou Script , puis utilisez/ import de WP-CLI?

require ABSPATH . 'wp-admin/includes/export.php';

// Buffer output
ob_start();

// Generates the WXR export file for download.
$defaults = array (
    'content'    => 'all', 'author' => false, 'category' => false,
    'start_date' => false, 'end_date' => false, 'status' => false,
);

export_wp( $defaults );

// Get the buffer contents
$xml_export_data = ob_get_clean();
echo $xml_export_data;

Ou y a-t-il une manière semblable à celle décrite ci-dessus, que je puisse utiliser le code d'exportation WP-CLI db et produire un fichier prêt à être importé .

$ wp db export /vagrant/site/site_export.sql
Success: Exported to /vagrant/site/site_export.sql

Le chemin le plus simple pour mon serveur principal (le plus important) consiste à faire un mysqldump directement via SSH.

# backup:
mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

# restore:
mysql -u root -p[root_password] [database_name] < dumpfilename.sql

Je ne suis pas sûr que le dump SQL normal contienne toutes les valeurs requises pour une importation WP-CLI.


Mettre à jour

Un simple mysqldump pourrait être la seule chose nécessaire. Maintenant, je pense que j'aurais dû transférer tous les fichiers avant l'importation ... Je vous tiens au courant, mais il pourrait s'agir d'un processus en deux lignes.

3
jgraup

LE COURT

Exporter

Sudo mysqldump -u root -pPASSWORD DBNAME > filename.sql

Importer

wp db import filename.sql


LE LONG

Donc, cela s'avère être très indolore. Le cliché de serveur correspond exactement à ce que WP-CLI a besoin de importer .

REMOTE

  1. Sudo mkdir backup
    • Créez un répertoire pour le fichier.
  2. Sudo chown -f -R ec2-user:group backup
    • Définissez les autorisations sur le répertoire pour mon utilisateur SSH.
  3. cd backup
    • Entrez le directoy
  4. Exécuter Sudo mysqldump -u root -pPASSWORD DBNAME > filename.sql
    • Au début, j'obtenais des erreurs d'autorisation, car mon EC2-USER avait besoin de contrôler le répertoire de sortie.

LOCAL

  1. Téléchargez filename.sql dans mon dossier Vagrant
  2. vagrant ssh
    • dans la boîte pour l'accès WP-CLI
  3. wp db import /vagrant/filename.sql
  4. wp search-replace old-site.com new-site.dev --test-run
    • Testez l'opération en premier
  5. wp search-replace old-site.com new-site.dev

REMARQUES

  • Assurez-vous que les plugins et les thèmes sont dans les bons répertoires
  • Toute erreur dans votre code PHP cassera le WP-CLI car il charge WP
  • WP Codex recommande de ne pas changer le GUID. Vous pouvez ignorer le GUID dans la recherche et le remplacer par wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid
2
jgraup