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:
Wenn ich das versuche, unterscheidet sich die Tabelle auf dem Server stark von der auf meinem lokalen.
Meine lokale Datenbankstruktur sieht folgendermaßen aus:
Normalerweise ist die Serverdatenbank dieselbe, in diesem Fall jedoch nicht.
Serverdatenbankstruktur:
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.
Bevor Sie beginnen:
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.
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:
wp_
.tenp_
.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
".
standalone
" (die Sie gerade erstellt haben) auf Ihrem lokalen Datenbankserver.multisite
" (die Sie gerade erstellt haben) auf Ihrem lokalen Datenbankserver.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:
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'
SET post_author = '4'
ist die neue Benutzer-ID (die Benutzer-ID aus der Multisite-Installation)WHERE post_author = '1'
ist die alte Benutzer-ID (die Benutzer-ID aus der Standalone-Installation)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.
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`;
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.
Wenn alle oben genannten Änderungen vorgenommen wurden, exportieren Sie die Datenbank "standalone
" von Ihrem lokalen Datenbankserver.
.sql
-Datei in die Datenbank "multisite
" auf Ihrem lokalen Datenbankserver.multisite
" von Ihrem lokalen Datenbankserver..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.
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.