Ich wollte die Datenbank von meiner Produktion Wordpress-Website in eine Offline-Entwicklung Kopie davon auf meinem Desktop-Rechner, so dass ich die Website ändern und testen Sie mit einem vollständigen Satz der vorhandenen Blog-Inhalt und Geschichte.
Dies erwies sich als problematisch, da es einfach nicht funktionierte, eine Offlinesicherung der Datenbank zu erstellen und sie in die lokale Entwicklungsdatenbank zu importieren.
Die Überwindung dieser Probleme beim Verschieben von Daten aus der Produktion in die Entwicklungsdatenbank kann wahrscheinlich auch umgekehrt verwendet werden - also denke ich, dass Sie diese Richtlinien auch für das verwenden können, was Sie auch tun möchten Dev-Daten und verschiebe es zu prod.
Die Probleme hier waren:
- die Permalink Bezeichnungen für die Blog-Posts alle in der Datenbank gespeichert werden, wie sie für die Online-Version sein würden, aber meine Offline-Kopie nicht das ist Domain-Adresse, stattdessen ist es im Verzeichnis localhost. So wenn ich die Website lokal starten, obwohl die CSS-Formatierung und Bilder sind alle an Ort und Stelle (das Bild Links sind relativ), die tatsächlichen Blog-Beiträge nicht angezeigt.
- viele der Links auf der ganzen Website Link aus dem Internet zurück, also, wenn Sie versuchen, Archive, oder Kommentare oder Kategorien oder die wichtigsten Beiträge zu navigieren, Sie heraus gelangen zurück an das Internet gesendet anstatt in der Datenbank auf dem lokalen Rechner zu bleiben.
Um sicherzustellen, dass ich das richtig gemacht habe, blies ich die Wordpress-Installation weg, die ich auf meinem lokalen Rechner hatte, und startete von vorne.
Einmal hatte ich eine saubere, neue Wordpress installieren und brandneuer Standard frisch lokale Datenbank für sie geschaffen, öffnete ich die Datenbank in phpMyAdmin auf und nahm einen Blick auf dem wp_posts
Tisch.Im Inneren hat jeder Datensatz (mit anderen Worten, jeder Beitrag) eine Spalte mit dem Titel "guid", die den Ort dieses Beitrags anzeigt. Zum Beispiel ist die erste in einer frischen, default
installieren enthält dieses „guid“ Wert:
http://localhost/wordpress/?p=1
Wenn Sie in der wp_posts Tabelle Ihrer Online-Version anschauen, werden Sie stattdessen in diesem Ort sehen die URL zu Ihrer Website online.
Sie können nicht einfach die Tabellen Großhandel in Ihre lokale Installation importieren, weil Sie alle diese externen Referenzen importieren werden. Es wird Ihre lokale Version unmöglich machen, lokal zu navigieren.
Also habe ich eine Sicherungskopie der Datenbank meiner Online-Site erstellt und lokal als .sql-Datei gespeichert. Ich habe dann diese Datei in einem Texteditor geöffnet (ich habe Notepad ++ benutzt, ein großartiges Stück freier Software, aber Sie könnten einen beliebigen Texteditor verwenden). Dinge, die ich brauchte zu achten ist:
- Aus welchem Grund auch immer, werden die Tabellen auf meiner Online-Seite nicht nur zum Beispiel „wp_posts“ - sie „wp_something_posts“ sind ... es gibt einige extra Buchstaben drin in den Tabellennamen.
- Verweise auf http: // ..., die meine Online-URL enthalten anstelle von localhost/Wordpress
Damit ist es einfach tun lassen gerade nur die Beiträge. Suchen Sie in der Sicherungskopie der .sql, die Sie aus Ihrer Online-Datenbank erstellt haben, den Anfang der Tabelle wp_posts. Es sieht ungefähr so aus:
--
-- Table structure for table `wp_posts`
--
DROP TABLE IF EXISTS `wp_posts`;
CREATE TABLE `wp_posts` (
... und so weiter. Markieren Sie alles oberhalb des Kommentars, der den Anfang der Datenbank am Anfang der Datei markiert (es wird sagen: Datenbank: 'Ihr Datenbankname') und löschen Sie es. Dann gehe zum Ende deiner wp_posts-Tabelle und lösche alles nach dem Ende bis zum Ende der Datei. Jetzt enthält Ihre Datei nur Ihre Posts und sonst nichts.
Speichern Sie dies als separates Dokument. Nennen Sie es posts.sql oder so ähnlich.
Jetzt in dieser Datei posts.sql müssen Sie zwei Suchen/Ersetzen Aktionen durchführen.
- jede Instanz des Namens finden Sie die Tabelle wp_something_posts und es mit wp_posts ersetzen. Sie müssen nur dies tun, wenn Ihre Sicherungskopie Ihrer Online-Datenbank nicht übereinstimmen Ihre saubere lokale Installation als weit wie die Tabellennamen gehen. Sie wollen , was auch immer der Tabellenname in dieser Datei ist, um zu entsprechen, was Ihre lokal installierte wordpress Datenbank als dieser Tabellenname hat. Wenn Sie nicht diese Namen übereinstimmen, sind Sie nur gehen, um am Ende die Posts in eine neue, anders benannte Tabelle, zu importieren, die Ihnen bei alle nützen wird.
- Finden Sie jede Instanz von http: // ... (ersetzen Sie die Elipsis mit Ihrer URL) und ersetzen sie durch http://localhost/wordpress (oder , was die lokale URL zu Ihrer dev Version der Website ist)
nun wieder diese Datei speichern, um sicherzustellen, dass Sie‘ Ich habe diese Änderungen eingestellt.
Jetzt, wo Sie das getan haben, phpMyAdmin in die Wordpress-Datenbank auf dem lokalen Computer zu erhalten, wählen Sie die Registerkarte „Import“ und navigieren Sie den Wähler auf die posts.sql Datei, die Sie gerade gemacht, und dann importieren es. Dadurch werden alle Daten in dieser Datei in Ihre lokale Tabelle wp_posts übernommen.
Wenn dies abgeschlossen ist, durchsuchen Sie Ihre lokale Wordpress-Website. Du wirst jetzt alle deine Posts sehen. Hurra!
Sie müssen möglicherweise etwas ähnliches für ein paar andere Tabellen tun, wenn Sie in Ihren Kommentaren, Tags, Kategorien bringen wollen, und statische Seiten, die Sie erstellt haben, usw.
Ich weiß, das eine wechselhafte Prozess ist . Es gibt wahrscheinlich irgendwo ein Tool, das diese Aktivität erleichtert, und wenn jemand davon weiß, würde ich es gerne erfahren. Wenn jemand einen besseren Weg kennt, dies manuell zu tun als das, was ich beschrieben habe, würde ich das auch gerne wissen!
Bis dahin habe ich auf diese Weise herausgefunden, wie es geht. Hoffentlich hilft es Ihnen, in die richtige Richtung zu gehen.