Ich habe eine Wordpress-Datenbank, die in einer Entwicklungsumgebung installiert wurde. Daher haben alle Verweise auf die Site selbst eine feste IP-Adresse (z. B. 192.168.16.2). Jetzt muss ich diese Datenbank auf eine neue Wordpress-Installation auf einem Hosting migrieren. Das Problem ist, dass der SQL-Speicherauszug viele Verweise auf die IP-Adresse enthält und ich sie ersetzen muss durch: my_domain.com.
Ich könnte sed
oder einen anderen Befehl verwenden, um das über die Befehlszeile zu ändern. Das Problem ist, dass es viele Konfigurationsdaten gibt, die JSON verwenden. Na und? Wie Sie wissen, verwenden JSON-Arrays Dinge wie: s:4:
Um zu wissen, wie viele Zeichen ein Element hat, und wenn ich nur die IP durch den Domänennamen ersetze, werden die Konfigurationsdateien beschädigt.
Ich habe vor einigen Jahren eine App für Windows verwendet, mit der Werte in einer Datenbank geändert werden können und die sich um die JSON-Arrays kümmert. Leider habe ich den Namen der App vergessen ... die Frage ist also: Kennen Sie eine App, mit der ich tun kann, was ich will?
Antworten:
Die Daten, die Sie anzeigen, sind nicht JSON-formatiert. JSON speichert solche Werttypen und -längen (normalerweise) nicht. Was Sie sehen, sind SERIALISIERTE Daten. Eine Google-Suche nach "MySQL ersetzen serialisiert" ergibt diese Seite, die hilfreich sein könnte: http://davidcoveney.com/mysql-database-search-replace-with-serialized-php/
quelle
Codex hat eine anständige Anleitung - Ändern der Site-URL .
Grundsätzlich gibt es mehrere Stellen, an denen URL wichtig ist oder nicht so sehr (ich vermisse möglicherweise einige):
home
undsiteurl
Optionen, die steuern, wo WP denkt, dass sich die Site befindet;quelle
mv olddir.com newdir.com
Ihren Webserver neu konfiguriert haben, starten Sie den Webserver neu. Befolgen Sie die Codex-Anweisungen hier und dann sollten Sie sich als Administrator anmelden können. Damit sollten Sie loslegen :-)Wie Rarst oben sagte, gibt es nur zwei Einstellungen in der Datenbank, die geändert werden müssen. Nach dem Import der Datenbank melde ich mich bei PHPMyAdmin an und bearbeite die Datenbank direkt.
Ich verwende ständig einen Entwicklungsserver auf meinem PC, um Datenfeeds zu importieren, und die URL ist an die Posts gemäß http: // localhost / testsite / post-name / angehängt, und es wurde nie ein Problem verursacht.
Früher habe ich eine SQL-Suche verwendet und ersetzt, bis mir klar wurde, dass es keine Rolle spielt. Ich habe einige Websites von einer Domain in eine andere migriert und wo ich absolute URLs im Inhalt hatte, verwende ich die SQL-Such- und Ersetzungsoption.
David
quelle
Dies ist eine erstaunliche Ressource, die ich mit einem Lesezeichen versehen habe und auf die ich immer wieder zurückgreife. Http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries-you-wish-you-knew -vorhin/
Sie geben an
quelle
Sie können diese Werte mit Konstanten in der
wp-config.php
. Danach können Sie jederzeit die Einträge in der Datenbank über das Plugin Adminer ändern. Schreiben Sie dies in diewp-config.php
und die Werte in der DB sind nicht relevant:quelle
Schauen Sie sich meine Antwort auf diese Frage an:
Es behebt Ihre Probleme beim Bereinigen von Daten und kann mithilfe von Hooks auch an bestimmte Datenmigrationsanforderungen angepasst werden.
Ich hoffe es hilft.
quelle
Einfache SQL-Abfragen - keine komplizierten REPLACE-Aufgaben erforderlich:
Verwenden Sie diese mit PHPMyAdmin oder auf eine andere Weise, die Sie bevorzugen, um auf die Datenbank zuzugreifen.
quelle
Stellen Sie sicher, dass Sie die neue Datenbank ausgewählt haben, und führen Sie dann einige SQL-Aktualisierungen und Ersetzungsbefehle für die Tabellen aus, insbesondere wp_options, wp_posts, wp_postmeta.
Verwenden Sie den folgenden Code und tauschen Sie Ihre alten und neuen URLs ohne nachgestellte Schrägstriche aus. Ändern Sie gegebenenfalls auch die Tabellenpräfixwerte (z. B. wp_).
quelle
Dies ist eine sehr alte Frage, aber da ich auf der Suche nach etwas anderem darauf gestoßen bin, dachte ich, ich würde dies als zukünftige Referenz hinzufügen.
Ich denke, der einfachste und vollständigste Weg, dies zu tun, ist die Verwendung von searchreplacedb2.php. Sie finden es hier: http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ sowie eine Erläuterung seiner Verwendung.
Es hat mir definitiv viel Zeit bei der Migration von Entwicklern zu Live-Umgebungen auf meinen WordPress-Sites gespart.
Stellen Sie einfach sicher, dass Sie es von einem öffentlichen Server löschen, nachdem Sie fertig sind!
quelle