it-swarm.com.de

Export WP Datenbank für den Import mit WP-CLI auf Vagrant Box

Problem

Nachdem ich eine neue Umgebung mit WP-CLI dbimportexport habe, muss ich eine Datenbank von einer Website importieren, auf der WP-CLI noch nicht installiert war.

Frage

Was ist die beste Nicht-WP-CLI-Exportmethode für den WP-CLI-Import?


Hintergrundgeschichte: Ich habe Basic WordPress Vagrant Environment für lokale Tests verwendet und vor kurzem hat der Autor WP-CLI hinzugefügt. Je mehr ich damit rumgespielt habe, desto mehr bin ich verliebt. Ich bin sogar so weit gegangen, ein bash-Skript zu erstellen, um neue Vagrant -Kästchen mit nur einem Namen zu erstellen.


Ist es besser, einen Export im WXR-Format über das WordPress-Skript export panel oder script durchzuführen, dann verwenden Sie die WP-CLIs import ?

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;

Oder gibt es eine ähnliche Möglichkeit wie oben, mit der ich den WP-CLI db-Exportcode nutzen und eine Datei erstellen kann, die zum Importieren bereit ist.

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

Der einfachste Weg für meinen Haupt- (wichtigsten Server) ist, einfach einen mysqldump direkt über SSH auszuführen.

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

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

Ich bin mir nur nicht sicher, ob der reguläre SQL-Dump alle für einen WP-CLI-Import erforderlichen Werte enthält.


Aktualisieren

Eine einfache mysqldump könnte das einzige sein, was benötigt wird. Jetzt denke ich, ich hätte vor dem Import alle Dateien übertragen sollen ... Ich werde auf dem Laufenden bleiben, aber dies könnte ein zweizeiliger Prozess sein.

3
jgraup

DER KURZE

Exportieren

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

Importieren

wp db import filename.sql


DAS LANGE

Das ist also sehr schmerzlos. Der Server-Dump ist genau das, was WP-CLI benötigt, um zu importieren .

REMOTE

  1. Sudo mkdir backup
    • Erstellen Sie ein Verzeichnis für die Datei.
  2. Sudo chown -f -R ec2-user:group backup
    • Legen Sie die Berechtigungen für das Verzeichnis für meinen SSH-Benutzer fest.
  3. cd backup
    • Geben Sie die Direktion ein
  4. Führen Sie Sudo mysqldump -u root -pPASSWORD DBNAME > filename.sql Aus.
    • Anfänglich bekam ich Berechtigungsfehler, weil mein EC2-USER die Kontrolle über das Ausgabeverzeichnis benötigte.

LOCAL

  1. Laden Sie filename.sql in meinen Vagrant-Ordner herunter
  2. vagrant ssh
    • in die Box für den WP-CLI-Zugriff
  3. wp db import /vagrant/filename.sql
  4. wp search-replace old-site.com new-site.dev --test-run
    • Testen Sie zuerst die Funktion
  5. wp search-replace old-site.com new-site.dev

ANMERKUNGEN

  • Stellen Sie sicher, dass sich die Plugins und Themes in den richtigen Verzeichnissen befinden
  • Alle Fehler in Ihrem PHP Code werden die WP-CLI beschädigen, da sie WP lädt
  • WP Codex empfiehlt , die GUID nicht zu ändern. Sie können das GUID bei der Suche überspringen und durch wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid ersetzen.
2
jgraup