Wenn es um die Arbeit mit WordPress-basierten Projekten geht, besteht einer der frustrierendsten oder langwierigsten Aspekte der Bereitstellung tatsächlich darin, die Datenbanken über Ihre Umgebungen hinweg synchron zu halten.
Sicher, es gibt etwas zu sagen für die Verwendung von Testdaten in der Entwicklung, Benutzerdaten für das Inszenieren und tatsächliche Daten in der Produktion, aber es gibt keine Silberkugel, oder? Das bedeutet, dass manchmal Testdaten werden funktionieren; andere Zeiten wird es nicht.
Angenommen, Sie erben ein Projekt, für das Sie eine Datenbank herunterziehen müssen, und beginnen dann mit der Arbeit mit vorhandenen Daten. Oder lassen Sie uns sagen, dass Sie eine gesamte Site oder Anwendung von einem Server auf einen anderen migrieren müssen.
In solchen Fällen helfen Testdaten nicht viel. Stattdessen brauchen Sie ein Werkzeug dafür. Der WordPress Importer ist sicher ein faires Werkzeug für grundlegende Migrationen. Das Ausführen von SQL-Exporten und -Importen ist in Ordnung, wenn Sie mit Datenbank-Frontends und der Arbeit mit SQL vertraut sind.
Aber was ist mit denen, die sich irgendwo dazwischen befinden??
Die Wahrheit ist, wenn es um die Arbeit mit WordPress-Datenbankmigrationen geht, handelt es sich um eine gemischte Mischung, da viele von uns über verschiedene Skill-Level verfügen, die davon abhängen, mit welchem Teil des Stacks wir am meisten arbeiten.
Damit meine ich:
Dies bedeutet nicht, dass es keine vollständigen Stack-Entwickler gibt. Offensichtlich gibt es jedoch ist nicht jeder in dieser Position.
Wenn es darum geht, WordPress-Datenbanken zu migrieren, ist es für manche schwieriger als andere. Alternativ können manche trotz des Komforts von SQL nach einem Werkzeug suchen, um den gesamten Prozess zu vereinfachen.
In dieser Serie werfen wir einen Blick auf ein Dienstprogramm, das dies tut gerade Bevor wir das tun, wollen wir eine kurze Einführung in die WordPress-Datenbank haben, um sicherzustellen, dass wir alle auf derselben Seite sind.
Bei der Diskussion der WordPress-Datenbank könnte eine ganze Reihe von Artikeln über jede Tabelle, jede Spalte, das Schema, das Schreiben optimaler Abfragen usw. geschrieben werden.
Dies ist nicht die Serie dafür.
Stattdessen werden wir in diesem Artikel zwei Dinge tun:
Letztendlich sollte dies dazu beitragen, einige der zugrunde liegenden Arbeiten für diejenigen zu erklären oder zu entmystifizieren, die mehr Zeit für das Front-End aufwenden, und es kann für diejenigen hilfreich sein, die mehr Zeit auf der Anwendungsebene mit der WordPress-API verbringen, um zu verstehen, welche Funktionen zu welcher Tabelle passen (was letztendlich dazu führen kann, besseren Code zu schreiben).
Im Allgemeinen denke ich, dass die Mehrheit der Leser von Wptuts + weiß, was eine Datenbank ist.
Direkt aus Wikipedia:
Eine Datenbank ist eine organisierte Sammlung von Daten. Die Daten werden normalerweise so organisiert, dass relevante Aspekte der Realität (z. B. die Verfügbarkeit von Zimmern in Hotels) so modelliert werden, dass Prozesse unterstützt werden, die diese Informationen erfordern (z. B. das Suchen eines Hotels mit freien Stellen)..
Das ist eine faire Definition, aber ich denke nicht, dass es die Darstellung der WordPress-Datenbank oder ähnlicher Webanwendungen so gut macht - es ist ein bisschen zu allgemein. Erstellen wir also von hier aus unsere eigene Arbeitsdefinition, die wir für den Rest der Serie verwenden können.
Lass uns das versuchen:
Eine Datenbank besteht aus mindestens einer Tabelle. Eine Tabelle besteht aus Zeilen und Spalten, in denen jeweils eindeutige Informationen gespeichert sind. Jede Zeile wird als Datensatz bezeichnet. In einer Datenbank können mehrere Tabellen vorhanden sein, und Tabellen können manchmal miteinander in Beziehung stehen.
Das Verwirrendste an dem, was ich oben geteilt habe, ist vielleicht, dass Tabellen miteinander in Beziehung stehen können. Wir werden diese Idee vor dem Ende des Artikels noch einmal überdenken - aber zuerst wollen wir die WordPress-Datenbank besprechen.
Kurz gesagt, die WordPress-Datenbank besteht aus elf Tabellen (es sei denn, Sie verwenden Multisite, was jedoch nicht in den Umfang dieser Serie fällt)..
Nun hat jede Tabelle auch einen eigenen Satz von Spalten, die eine Vielzahl von Informationen darstellen, die in der Tabelle gespeichert sind. Zum Beispiel die wp_posts
Tabelle hat eine Spalte namens post_content
das ist der tatsächliche Inhalt, der in einem Beitrag gespeichert ist.
Die Tabellen und ihre Beschreibungen lauten wie folgt:
Und das ist alles für die WordPress-Datenbank. Es ist relativ einfach und unkompliziert, richtig?
Beiträge werden in der Beitragstabelle, Kommentare in der Kommentartabelle, Benutzer in der Benutzertabelle usw. gespeichert. Sicher, es gibt einige subtile Nuancen (wie die Tatsache, dass Pages in der Posts-Tabelle gespeichert sind); Dies ist jedoch ein relativ unkompliziertes Schema.
Das ist gut.
Denken Sie auch daran, wie wir bereits erwähnt haben, dass sich einige Tabellen auf einander beziehen können. Ein gutes Beispiel dafür sind die Kommentartabelle und die Posts-Tabelle. Da Kommentare zu einem bestimmten Beitrag hinterlassen werden, muss ein Kommentar wissen, mit welcher Beitrags-ID er verknüpft ist. Wenn ein Beitrag geladen wird, können Kommentare abgerufen werden, die sich auf die Beitrags-ID beziehen.
Auf jeden Fall ist dies detaillierter als wir in dieser Serie eintauchen werden, aber hoffentlich reicht es aus, um Ihnen eine Idee zu geben. Wenn Sie an weiteren technischen Informationen, den Beziehungen zwischen den Tabellen, den Spalten usw. interessiert sind, lesen Sie auf jeden Fall den WordPress-Codex-Artikel zur Datenbankbeschreibung.
An dieser Stelle haben wir alles behandelt, was wir in unserer Grundierung der WordPress-Datenbank behandeln müssen. Hoffentlich hilft dies dabei, den Vorhang für das, was unter der Haube passiert, zurückzuziehen, wenn Sie Informationen in WordPress speichern, aber jetzt, da wir uns damit befasst haben, ist es an der Zeit, sich ein Werkzeug anzusehen, das die Arbeit mit Datenmigrationen extrem einfach macht.
Wenn wir nun wissen, wie die Datenbank organisiert ist, sollten wir auch wissen, wie Migrationen funktionieren.