it-swarm.com.de

Verschieben einer lokalen Single Site-Datenbank in eine Remote-Multisite-Datenbank

Ich bin ziemlich neu in Wordpress und bin ein wenig verwirrt, wie ich die Datenbank von meinem lokalen Server nehmen und durch die auf dem Server auf einer Wordpress-Multisite ersetzen kann.

Ich habe die Datenbank zuvor vom lokalen zum Server ausgetauscht, aber es war eine Multisite-Datenbank.

Der Schritt, den ich normalerweise mache, ist:

  1. sichern Sie die Datenbank auf dem Server
  2. lokale Datenbank exportieren
  3. löschen Sie alle Tabellen in der Server-Datenbank
  4. importieren Sie die lokale Datenbank
  5. gehe zu wp_option
  6. ändere den Wert für siteurl und gehe nach Hause zur site url

Wenn ich das versuche, unterscheidet sich die Tabelle auf dem Server stark von der auf meinem lokalen.

Meine lokale Datenbankstruktur sieht folgendermaßen aus:

 enter image description here 

Normalerweise ist die Serverdatenbank dieselbe, in diesem Fall jedoch nicht.

Serverdatenbankstruktur:

 enter image description here 

Ich bin ein bisschen verwirrt, wie ich das angehen soll. Kann ich immer noch das tun, was ich normalerweise mache, oder muss ich zusätzliche Schritte unternehmen?

Danke im Voraus.

Edit: Denke, ich habe das ein bisschen überkompliziert, ich könnte einfach eine neue Datenbank auf dem Server erstellen und stattdessen die Datei wp_config.php darauf verweisen und alles sollte gut sein

Edit 2: Nein, funktioniert nicht so, wie ich es mir vorgestellt habe. Immer wieder wird ein Fehler in der Umleitungsschleife angezeigt

Edit 3: Ich habe dank @Michael Ecklund endlich alles richtig migriert! Da ich die Datenbank der Primärseite aktualisierte, musste ich keine neue Site erstellen, befolgte aber trotzdem den Rest der Anweisung , die er geschrieben hat, und es lief ziemlich reibungslos. Anfangs ein bisschen Verwirrung, aber das war mein eigener Mangel an Wissen.

Edit 4: Nur zu Ihrer Information, wenn Sie nach der Datenbankmigration den Zugriff auf das Dashboard verloren haben. Gehen Sie in Ihre Hauptdatenbank und in die Tabelle * _options (in meinem Fall tenp_options) und suchen Sie nach einem wp_user_roles in der Spalte option_name und ändern Sie diesen Spaltennamen in Ihr Site-Präfix (in meinem Fall tenp_). Jetzt sollten Sie in der Lage sein um erneut auf Ihr Dashboard zuzugreifen.

2
Radizzt

Zusammenführen der eigenständigen Installation von WordPress mit der Installation von WordPress Multisite

Bevor Sie beginnen:

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

Schritt 1 - Datenbanken sichern.

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

  1. Sichern Sie die Datenbank der eigenständigen Instillation.
  2. Sichern Sie die Datenbank der Multisite-Installation.

Schritt 2 - Identifizieren Sie die Präfixe der Datenbanktabelle.

Standardmäßig lautet das Präfix der Datenbanktabelle wp_.

Wenn Sie das Präfix der Datenbanktabelle nicht identifizieren können, untersuchen Sie einfach die Datenbank. Sie können im Basisverzeichnis Ihrer WordPress-Installation nachsehen, die wp-config.php-Datei der betreffenden Site öffnen und nach einer Zeile wie $table_prefix = 'wp_'; suchen.

In Ihrer Situation sieht es so aus:

  • Das Präfix für die Datenbanktabelle der Standalone-Installation lautet standardmäßig wp_.
  • Das Präfix für die Datenbanktabelle der Multisite-Installation lautet tenp_.

Schritt 3 - Exportieren von Datenbanken. In lokale Umgebung importieren.

Erstellen Sie auf einem lokalen Datenbankserver eine temporäre Datenbank für jede dieser Datenbanken. Vielleicht um die Dinge einfach zu halten, beschriften Sie eine Datenbank mit "standalone" und die zweite mit "multisite".

  • Importieren Sie die Datenbank der Standalone-Installation (die Sie gerade exportiert haben) in die Datenbank "standalone" (die Sie gerade erstellt haben) auf Ihrem lokalen Datenbankserver.
  • Importieren Sie die Datenbank der Multisite-Installation (die Sie gerade exportiert haben) in die Datenbank "multisite" (die Sie gerade erstellt haben) auf Ihrem lokalen Datenbankserver.

Schritt 4 - Suchen und Ersetzen.

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

Führen Sie diese Aufgabe für die Datenbank "standalone" aus, die Sie auf Ihrem lokalen Datenbankserver erstellt haben.

Denken Sie daran, die Einstellungen in der Multisite-Installation so zu ändern, wie Sie es möchten (das Endergebnis).

Für diesen Vorgang benötigen Sie ein Datenbank-Tool:

  1. WP-CLI :: wp search-replace das ist alles Kommandozeile.
  2. Wenn Sie eine grafische Benutzeroberfläche bevorzugen, können Sie auch das Datenbanksuch- und -ersetzungsskript in PHP verwenden, indem Sie/it verbinden.

Schritt 4.2 - Benutzer und Beitragsautoren

Sie möchten wahrscheinlich eine Notiz über alle Benutzer aus Ihrer Standalone-Installation erstellen und die alten Benutzer-IDs den neuen Benutzer-IDs (aus der Multisite-Installation) zuordnen.

Sie können einfach eine temporäre Textdatei erstellen und folgendermaßen vorgehen:

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.

Anschließend müssen Sie die Spalte post_author der Tabelle wp_posts aktualisieren, um alle alten Benutzer-IDs auf die neuen Benutzer-IDs zu aktualisieren. Andernfalls werden Sie bei der Anzeige Ihrer migrierten Site von Standalone zu Multisite ein verwirrtes Kätzchen. Es wird gesagt, dass Dinge auf Ihrer Website von zufälligen Personen und wahrscheinlich sogar von Personen von verschiedenen Websites in Ihrem Netzwerk gepostet wurden. Dies kann katastrophal sein, wenn es übersehen wird.

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

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

Schritt 5 - Benutzer und Usermeta

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

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

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

Schritt 6 - Datenbanktabellennamen aktualisieren

Dieser Schritt ähnelt Schritt 4.

Sie möchten alte Tabellennamen neuen Tabellennamen in der Datenbank "standalone" auf Ihrem lokalen Datenbankserver zuordnen.

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

Als Beispiel: Wenn Ihre Site-ID 15 lautet und das für Ihre Multisite-Installation verwendete Präfix für die Datenbanktabelle tenp_ lautet, wird die Datenbanktabelle wp_posts zu tenp_15_posts.

Mit dem folgenden MySQL-Befehl können Sie die Namen Ihrer Datenbanktabellen aktualisieren:

RENAME TABLE `wp_posts` 
TO `tenp_15_posts`;
  • Die erste Zeile ist der alte Name der Datenbanktabelle (der Name der Datenbanktabelle aus der Einzelplatzinstallation).
  • Die zweite Zeile ist der Name der neuen Datenbanktabelle (das in der Multisite-Installation zu verwendende Format für den Namen der Datenbanktabelle).

Alternativ, wenn Ihre Datenbank klein genug ist. Sie können einfach die gesamte Datenbank exportieren und in einem Texteditor öffnen. Dann finde alles und ersetze es. Speichern Sie es, wenn Sie fertig sind.

Schritt 7 - Exportieren und Importieren

Wenn alle oben genannten Änderungen vorgenommen wurden, exportieren Sie die Datenbank "standalone" von Ihrem lokalen Datenbankserver.

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

Verschieben Lädt Dateien von ./wp-content/ hoch.

Hochgeladene Dateien werden von Standalone- und Multisite-Speichern unterschiedlich gespeichert. 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 Sie in Ihrer Multisite-Datenbank nach der Datenbanktabelle wp_site. Bearbeiten Sie die Spalten id und domain entsprechend.

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

Suchen Sie auch in wp-config.php nach diesen Zeilen und passen Sie sie erneut 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:


Ende.

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

1
Michael Ecklund

Die Datenbank ist in der Tat für ein Multiwp anders konfiguriert, diese Tenp_12 sind Präfixe für jeden Standort in der Multisite. Es scheint, dass die Site, die Sie lokal betreiben, keine Multisite ist. Mein Vorschlag, wenn Sie versuchen, eine andere Site (nicht die primäre) hinzuzufügen, besteht darin, sie zuerst über das Dashboard für mehrere Sites hinzuzufügen, auf dieser eine Tabelle abzulegen (d. H. Tenp_x, wobei x Ihrer Site-ID ähnelt) und in diese Tabellen zu importieren. Dazu müssten Sie den Tabellennamen sowie die Spalten vorab umbenennen. Anschließend können Sie den Wert für siteurl und home für die Site-URL konfigurieren, wie in Punkt 6 beschrieben.

1
DGRFDSGN