WordPress Datenbank-Synchronisation: Local, Staging und Production mit WP-Sync-DB
Hier ist ein ausführliches Tutorial zur Synchronisation deiner WordPress-Datenbanken zwischen lokalen Umgebungen, Staging-Servern und Live-Websites.
Die manuelle Synchronisation von WordPress-Datenbanken via SQL-Export und Suchen-Ersetzen von URLs ist zeitaufwendig und fehleranfällig. WP-Sync-DB (ein Open-Source-Fork von WP Migrate DB Pro) automatisiert diesen Prozess und ermöglicht es dir, Datenbanken per Knopfdruck zwischen verschiedenen Umgebungen zu "pushen" oder zu "pullen".
1. Voraussetzungen
Bevor du startest, solltest du Folgendes sicherstellen:
- Du hast Zugriff auf alle beteiligten WordPress-Installationen (Lokal, Staging, Live).
- Wichtig: Erstelle immer ein Backup deiner Datenbanken, bevor du eine Synchronisation durchführst.
2. Installation von WP-Sync-DB
Da WP-Sync-DB nicht im offiziellen WordPress-Plugin-Verzeichnis gelistet ist, musst du es von GitHub beziehen.
- Besuche die WP-Sync-DB GitHub Seite.
- Lade die
.zip-Datei des Haupt-Plugins herunter. - (Optional) Lade auch das Add-on WP-Sync-DB-Media-Files herunter, wenn du Bilder synchronisieren möchtest.
- Installiere und aktiviere das Plugin auf allen beteiligten Websites (Lokal, Staging und Production).
3. Die Remote-Seite vorbereiten (z. B. Live-Server)
Damit dein lokaler Rechner Daten an den Server senden oder von ihm empfangen darf, muss die Remote-Seite eine Verbindung zulassen.
- Logge dich im WordPress-Dashboard der Live-Seite ein.
- Gehe zu Werkzeuge > WP Sync DB.
- Klicke auf den Tab Settings.
- Aktiviere die Option "Accept pull requests" (erlaubt das Kopieren von Live zu Lokal) oder "Accept push requests" (erlaubt das Kopieren von Lokal zu Live).
- Kopiere den Inhalt der Felder Connection Info (URL und Secret Key). Diese benötigst du gleich.
4. Die Synchronisation durchführen (z. B. von Lokal)
In den meisten Fällen arbeitest du lokal und möchtest entweder den Stand vom Server holen (Pull) oder deine Änderungen hochladen (Push).
- Gehe auf deiner lokalen Website zu Werkzeuge > WP Sync DB.
- Wähle im Tab Migrate eine Aktion aus:
- Pull: Zieht die Datenbank vom Server auf deinen Rechner.
- Push: Sendet deine lokale Datenbank zum Server.
- Gib im Feld darunter die Connection Info ein, die du vorhin vom Live-Server kopiert hast.
- Klicke auf Connect.
5. Suchen und Ersetzen (Magic Search & Replace)
Sobald die Verbindung steht, zeigt dir das Plugin die Suchen-Ersetzen-Felder an. Das ist der wichtigste Teil:
- Links (Suchen): Hier steht automatisch die URL und der Dateipfad des Remote-Servers.
- Rechts (Ersetzen): Hier steht deine lokale URL und dein lokaler Pfad.
- Das Plugin sorgt dafür, dass alle URLs in der Datenbank (auch in serialisierten Daten) korrekt angepasst werden, damit die Website in der Zielumgebung sofort funktioniert.
6. Tabellen und Optionen auswählen
- Tables: Standardmäßig werden alle Tabellen synchronisiert. Du kannst jedoch bestimmte Tabellen (z. B. Spam-Kommentare oder Statistiken) ausschließen, um den Prozess zu beschleunigen.
- Exclude post types: Hier kannst du z.B. Revisionen ausschließen.
- Backup: Du kannst die Ziel-Datenbank sichern lassen, bevor sie überschrieben wird (sehr empfohlen).
7. Der Sync-Vorgang
- Wenn alles eingestellt ist, klicke unten auf den Button Pull oder Push.
- Ein Fortschrittsbalken zeigt dir den Status an.
- Nach Abschluss ist die Datenbank synchronisiert. Eventuell musst du dich auf der Zielseite neu einloggen.
8. Synchronisation von Medien (Bilder & Dateien)
Wenn du auch die Mediathek synchronisieren möchtest, benötigst du das oben erwähnte Media Files Add-on.
- Aktiviere das Add-on auf beiden Seiten.
- Beim Konfigurieren des Sync-Vorgangs erscheint ein neuer Bereich Media Files.
- Wähle aus, ob du alle Bilder synchronisieren willst oder nur diejenigen, die in der Zielumgebung noch fehlen.
Profi-Tipps für den Workflow
- Staging als Zwischenschritt: Arbeite idealerweise von Local -> Staging. Teste dort alles. Wenn es stabil ist, synchronisiere von Staging -> Production.
- Migration-Profile speichern: Du kannst deine Einstellungen (URLs, ausgeschlossene Tabellen) als Profil speichern. So reicht in Zukunft ein einziger Klick, um die Datenbank abzugleichen.
- Sicherheit: Deaktiviere die "Push/Pull"-Optionen in den Einstellungen auf dem Live-Server, wenn du sie gerade nicht benötigst, um die Angriffsfläche zu minimieren.
Mit diesem Setup sparst du dir Stunden an manueller Arbeit und vermeidest die typischen Fehler bei der URL-Anpassung in der WordPress-Datenbank.