Verschieben der lokalen database in ein Multisite-WordPress

Ich bin ziemlich neu in WordPress und ich bin ein wenig verwirrt, wie man die database von meinem lokalen Server nimmt und sie durch die auf dem Server auf einer WordPress Multisite ersetzt.

Ich habe die database vorher von Lokal zu Server ausgetauscht, aber es war eine Multisite.

Der Schritt, den ich normalerweise mache, ist:

  1. Sichern Sie die database auf dem Server
  2. lokale database exportieren
  3. lösche alle Tabellen in der Server-database
  4. Importieren Sie die lokale database
  5. Gehe zu wp_option
  6. Ändern Sie den Wert für siteurl und home auf die Website-URL

Wenn ich das versuche, ist die Tabelle auf dem Server sehr verschieden von der auf meinem lokalen.

Meine lokale databasestruktur sieht so aus:

Bildbeschreibung hier eingeben

Normalerweise ist die Server-database gleich, aber nicht in diesem Fall.

Server-databasestruktur:

Bildbeschreibung hier eingeben

Also bin ich ein wenig verwirrt darüber, wie man das anpackt. Kann ich immer noch tun, was ich normalerweise tue, oder müssen weitere Schritte unternommen werden?

Danke im Voraus.

Edit: Denke, ich habe das ein wenig zu kompliziert gemacht, ich könnte einfach eine neue database auf dem Server erstellen und stattdessen die Datei wp_config.php darauf richten und alles sollte gut sein

Edit 2: Nein, funktioniert nicht so, wie ich es dachte. Erhalte immer einen Redirect-Loop-Fehler

Edit 3: Endlich habe ich alles richtig migrieren können dank @Michael Ecklund ! Da ich die database der Primärseite aktualisiert habe, musste ich keine neue Seite erstellen, sondern folge dem Rest der statement, die er geschrieben hat, und es verlief ziemlich reibungslos. Ein bisschen Verwirrung zuerst, aber das war mein eigener Mangel an Wissen.

Bearbeiten Sie 4: Nur ein FYI, wenn Sie nach der databasemigration irgendwie den Zugriff auf das Dashboard verloren haben. Geh in deine Hauptdatenbank und in die * _options (in meinem Fall die tenp_options) -Tabelle und suche nach einem wp_user_roles in der Spalte option_name und ändere diesen Spaltennamen in dein Site-Präfix (was in meinem Fall tenp_ ) und du solltest jetzt in der Lage sein um erneut auf Ihr Dashboard zuzugreifen.

Solutions Collecting From Web of "Verschieben der lokalen database in ein Multisite-WordPress"

WordPress Standalone-Installation mit WordPress Multisite Installation zusammenführen

Bevor Sie beginnen:

  1. Erstellen Sie in Ihrem Multisite-Netzwerk eine neue Site. Dies ist die Site, die Sie von der Standalone-Installation migrieren. (Notieren Sie sich die Site-ID #, Sie benötigen sie später.)
  2. Sie müssen sicherstellen, dass alle Benutzer der Standalone-Installation in der Multisite-Installation erstellt und vorhanden sind.

Schritt 1 – Backup-databaseen.

Suchen Sie das Verzeichnis auf Ihrem Webserver, auf dem die Standalone-Kopie von WordPress installiert ist, und das Verzeichnis auf Ihrem Web-Server, auf dem die Multisite-Kopie von WordPress installiert ist, und öffnen Sie die Datei wp-config.php beider Installationen. DB_NAME die PHP-Konstante DB_NAME . Es enthält den Namen der database, die bestimmte Installation von WordPress verwendet.

  1. Sichern Sie die Standalone Instillation-database.
  2. Sichern Sie die database der Multisite-Installation.

Schritt 2 – Identifizieren Sie die Präfixe der databasetabelle.

Standardmäßig ist das Präfix der databasetabelle wp_ .

Wenn Sie das Präfix der databasetabelle nicht einfach durch Überprüfen der database identifizieren können. Sie können im Basisverzeichnis Ihrer WordPress-Installation suchen und die wp-config.php Datei der fraglichen Seite öffnen und nach einer Zeile wie $table_prefix = 'wp_'; .

In Ihrer Situation sieht es so aus:

  • Das databasetabellenpräfix der Standalone-Installation ist der Standardwert von wp_ .
  • Das database-Tabellen-Präfix der Multisite-Installation ist benutzerdefiniert von tenp_ .

Schritt 3 – databaseen exportieren. In lokale Umgebung importieren.

Erstellen Sie auf einem lokalen databaseserver eine temporäre database für jede dieser databaseen. Um die Dinge einfach zu halten, beschreibe man eine database als ” standalone ” und die zweite als ” multisite “.

  • Importieren Sie die Standalone-Installationsdatenbank (die Sie gerade exportiert haben) in die standalone database (die Sie gerade erstellt haben) auf Ihrem lokalen databaseserver.
  • Importieren Sie die database der Multisite-Installation (die Sie gerade exportiert haben) in die database ” multisite ” (die Sie gerade erstellt haben) auf Ihrem lokalen databaseserver.

Schritt 4 – Suchen und Ersetzen.

In diesem Schritt würden Sie wahrscheinlich alle erforderlichen URL-Änderungen ersetzen. (http zu https), (nicht www zu www), (hinzufügen oder entfernen von Verzeichnissen von der URL), usw.

Führen Sie diese Aufgabe in der standalone database durch, die Sie auf Ihrem lokalen databaseserver erstellt haben.

Denken Sie daran, Dinge so zu ändern, wie Sie möchten, dass sie in der Multisite-Installation sind (das Endergebnis).

Für dieses Verfahren benötigen Sie ein database-Tool:

  1. WP-CLI :: wp search-replace, das ist die Befehlszeile.
  2. Alternativ, wenn Sie eine GUI bevorzugen, gibt es die database suchen und ersetzen Skript in PHP von Interconnect / it .

Schritt 4.2 – Benutzer und Postautoren

Sie sollten wahrscheinlich eine Notiz über alle Benutzer von Ihrer Standalone-Installation erstellen und die alten Benutzer-IDs der neuen Benutzer-ID (von der Multisite-Installation) zuordnen.

Sie können einfach eine temporäre Textdatei erstellen und so etwas tun:

 1 => 4 8 => 23 15 => 9 

Die Zahlen auf der linken Seite sind die IDs der Standalone-Installation und die Zahlen auf der rechten Seite sind die IDs der Multisite-Installation.

Sie möchten dann die Spalte wp_posts Tabelle wp_posts aktualisieren, um alle alten Benutzer-IDs auf die neuen Benutzer-IDs zu aktualisieren. Andernfalls, wenn Sie Ihre migrierte Site von Standalone zu Multisite sehen, werden Sie ein verwirrtes Kätzchen sein. Es wird sagen, dass die Dinge auf Ihrer Website von zufälligen Leuten und wahrscheinlich sogar von Leuten von verschiedenen Seiten in Ihrem Netzwerk gepostet wurden. Dies kann katastrophal sein, wenn es übersehen wird.

Für jede der Benutzer-ID-Zuordnungen in Ihrer Textdatei sollten Sie einen ähnlichen Befehl in MySQL eingeben:

 UPDATE wp_posts SET post_author = '4' WHERE post_author = '1' 
  • Die Zeile SET post_author = '4' ist die neue Benutzerkennung (die Benutzerkennung aus der Multisite Installation)
  • Die Zeile WHERE post_author = '1' ist die alte Benutzerkennung (die Benutzerkennung aus der Standalone-Installation)

Schritt 5 – Benutzer und Usermeta

Für diesen Schritt habe ich noch keine gute Lösung gefunden. Normalerweise erstelle ich die Benutzer in der Multisite-Installation manuell neu.

Mit anderen wp_users , ich wp_users normalerweise nur zwei Tabellen wp_users und wp_usermeta .

Wenn jemand diesen Schritt verbessern möchte, können Sie ihn hier bearbeiten und hinzufügen.

Schritt 6 – Aktualisieren der database Tabellennamen

Dieser Schritt ist ähnlich wie Schritt 4.

Sie möchten alte Tabellennamen neuen Tabellennamen in der database ” standalone ” auf Ihrem lokalen databaseserver zuordnen.

In diesem Schritt müssen Sie die Site-ID # aus Ihrer Multisite-Installation kennen.

Als Beispiel: Wenn Ihre Site-ID 15 ist und Ihr database-Tabellen-Präfix für Ihre Multisite-Installation den Wert tenp_ , wird die databasetabelle wp_posts zu tenp_15_posts .

Hier ist der MySQL-Befehl, mit dem Sie Ihre databasetabellennamen aktualisieren können:

 RENAME TABLE `wp_posts` TO `tenp_15_posts`; 
  • Die erste Zeile ist der alte Name der databasetabelle (der Name der databasetabelle aus der Standalone-Installation).
  • Die zweite Zeile enthält den Namen der neuen databasetabelle (das Namenformat der databasetabelle, das bei der Multisite-Installation verwendet werden soll).

Alternativ, wenn Ihre database klein genug ist. Sie können einfach die gesamte database exportieren und in einem Texteditor öffnen. Dann alle finden & ersetzen. Speichern Sie es nach Abschluss.

Schritt 7 – Exportieren und Importieren

Sobald alle oben genannten Änderungen vorgenommen wurden, exportieren Sie die ” standalone ” -database von Ihrem lokalen databaseserver.

  1. Importieren Sie die exportierte .sql Datei in die ” multisite ” -database auf Ihrem lokalen databaseserver.
  2. Exportieren Sie die ” multisite ” -database von Ihrem lokalen databaseserver.
  3. Löschen Sie die aktuellen Multisite-databasetabellen, die für Ihre vorhandene Multisite-database verwendet werden (nicht die auf Ihrem lokalen databaseserver).
  4. Importieren Sie die .sql Datei für Ihre ” multisite ” -database, die Sie von Ihrem lokalen databaseserver exportiert haben, und importieren Sie sie in Ihre database, die von Ihrer vorhandenen Multisite-Installation verwendet wird (die, von der Sie gerade alle Tabellen gelöscht haben). Im Wesentlichen wird lediglich die database der aktuellen Multisite-Installation durch die geänderte ersetzt, die die neu migrierte Standalone-Site enthält.

Verschieben von Dateien von ./wp-content/ .

Standalone und Multisite speichern hochgeladene Dateien unterschiedlich. Multisite speichert sie in ./wp-content/sites/{$site_id}/ . Stellen Sie sicher, dass Sie Ihre hochgeladenen Dateien auch entsprechend verschieben.


Ändern der primären Site:

Suchen wp_site in Ihrer Multisite-database nach der databasetabelle wp_site. Bearbeiten Sie die Spalten- id und die domain entsprechend.

Möglicherweise müssen Sie auch die Spalte site_id in der Tabelle wp_blogs bearbeiten.

Schau auch in wp-config.php nach diesen Zeilen und wp-config.php sie wieder entsprechend an.

 define( 'DOMAIN_CURRENT_SITE', 'www.your-domain.com' ); define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 1 ); 

Nützliche Links:

  • Verschieben von WordPress
  • Mehrere Blogs in WordPress 3.0 Multisite migrieren

Ende.

Wenn etwas verwirrend ist, bitte Kommentar und ich werde versuchen, es zu klären.

Die database ist tatsächlich unterschiedlich für ein Multiwp konfiguriert, diese tenp_12 sind Präfixe für jede Site in der Multisite. Es scheint, dass die Site, die Sie lokal ausführen, keine Multisite ist. Mein Vorschlag, wenn Sie versuchen, eine andere Site (nicht primär) hinzuzufügen, besteht darin, sie zuerst aus dem Multisite-Dashboard hinzuzufügen, Tabellen auf diese zu legen (dh tenp_x, wobei x Ihrer Site-ID entspricht) und in diese Tabellen zu importieren. Dies würde erfordern, dass Sie den Tabellennamen sowie Spalten vorab umbenennen. Danach können Sie den Wert für siteurl und home für die Site-URL konfigurieren, wie in Punkt 6 beschrieben.