Migrieren Ihrer WordPress-Datenbank Eine Datenbankgrundierung

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??


Migrationen einfacher machen

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:

  • Diejenigen, die sich mit der Front-End-Arbeit viel besser auskennen, sind wahrscheinlich weniger mit der Anwendungsschicht und / oder der Datenbankschicht vertraut
  • Diejenigen, die es gewohnt sind, mit der Anwendungsschicht zu arbeiten, sind im Frontend möglicherweise genauso gut, nicht jedoch in der Datenbank (oder umgekehrt).
  • Diejenigen, die in der Datenbank leben, sind möglicherweise nicht mit den darüber liegenden Schichten zufrieden

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.


Die WordPress-Datenbank

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:

  1. Wir werden sicherstellen, dass wir alle ein klares konzeptionelles Verständnis für eine Datenbank haben, damit wir wissen, wie wir sie uns vorstellen können
  2. Wir werden uns jeden ansehen Tabelle in der WordPress-Datenbank, um zu verstehen, welche Art von Daten jede Tabelle enthält

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).

Was ist eine Datenbank??

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.


Wie werden Datenbanken normalerweise dargestellt?.

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.

Das WordPress-Datenbankschema

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:

  • wp_users enthält die Liste der Benutzer, die bei der WordPress-Installation registriert sind. Dazu gehören Dinge wie die E-Mail-Adresse, das Kennwort, der Anzeigename usw..
  • wp_usermeta enthält Informationen zu jedem Benutzer. Hier können Sie zusätzliche Informationen zu jedem Benutzer speichern.
  • wp_posts Hier werden alle Postinformationen gespeichert. Die Wahrheit ist, es spielt keine Rolle, ob es sich um einen Beitrag, eine Seite oder einen benutzerdefinierten Beitragstyp handelt. Alle Informationen wie Titel, Inhalt und mehr werden hier gespeichert.
  • wp_postmeta Dort werden die Metadaten für jeden Beitrag gespeichert. In dieser Tabelle können Sie weitere Informationen zu jedem Beitrag speichern und abrufen.
  • wp_kommentare Dort werden die Kommentare für jeden Beitrag (wiederum unabhängig von der Art) gespeichert.
  • wp_commentmeta Wie bei den anderen "Meta" -Tabellen können Sie mehr Informationen zu jedem Kommentar speichern, als in der Kommentartabelle bereits gespeichert sind.
  • wp_terms Hier werden die Kategorien und Tags gespeichert. Da die Beziehung zwischen Beiträgen, Seiten, benutzerdefinierten Beitragstypen, Kategorien und Tags etwas komplizierter werden kann, gibt es einige zusätzliche Tabellen.
  • wp_term_taxonomy enthält eine Beschreibung der Kategorie oder des Tags (oder sogar des Links, wenn Sie sie noch verwenden) im wp_terms Tabelle.
  • wp_term_relationship speichert die Beziehungen eines bestimmten Beitrags zu seiner Kategorie (oder Kategorien) und / oder zu Tags (oder Tags).
  • wp_options Hier werden alle Einstellungen aufbewahrt - dazu gehören diejenigen, die mit WordPress ausgeliefert und konfiguriert wurden und die mit der Einstellungs-API erstellt werden.
  • wp_links ist eine Tabelle, die immer noch in der WordPress-Datenbank vorhanden ist, obwohl für die Daten keine Benutzeroberflächenoption mehr vorhanden ist. Wenn Sie diese Funktion jemals verwendet haben, sind Sie mit Links und deren Funktionsweise vertraut und dies ist die Tabelle, in der sie gespeichert sind.

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.


Eine Datenbank und ihre Tabellen.

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.


Fazit

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.