Es ist allgemein anerkannt, dass Entwickler Updates über eine Staging-Site testen sollten, bevor sie auf dem Live-Server veröffentlicht werden. Sobald die Entwicklungsupdates jedoch Änderungen in Wordpress DB erfordern, werden die Dinge kompliziert, da Benutzer auf der Live-Site auch die DB aktualisieren.
Der einzige (durcheinandergebrachte) Fluss, den ich mir vorstellen kann, ist der folgende:
- Test auf einem lokalen Server (WAMP, XAMP usw.)
- Versetzen Sie die Live-Site nach der Bereitstellung in den Wartungsmodus
- Live-Site sichern (Duplicator, sqldump usw.)
- Erstellen Sie einen Klon einer gesperrten Live-Site für die Staging-Site
- Laden Sie Änderungen aus der lokalen Umgebung auf die Staging-Site hoch
- Testen Sie die Staging-Site
- Schieben Sie die Staging-Site zum Leben.
- Wartungsmodus entfernen
Nachteile des obigen Flusses:
- Ausfallzeiten können für Benutzer länger als erwartet sein, während der Entwickler Aktualisierungen auf der Staging-Site sorgfältig testet.
- Möglicherweise müssen Änderungen manuell verwaltet werden: Beispielsweise werden Siteorigin-Pagebuilder-Layouts in der Datenbank gespeichert. Sobald ein Layout geändert wurde, muss es manuell in die Staging-Site importiert werden. In diesem Fall kann es angemessen sein, Seiten einfach auf der Staging-Site abzulegen und zu importieren und sie, falls dies funktioniert, in die Live-Site zu importieren
Ich frage mich, ob es einen besseren und automatisierteren Weg gibt, dies zu erreichen.
Was denkst du?
BEARBEITEN, wie gewünscht, wurden in der Vergangenheit einige Lösungen vorgeschlagen, aber keine bietet eine endgültige Lösung:
- 9/2010 - Datenbanksynchronisation zwischen Entwicklung / Staging und Produktion
- 12/2011 - Bereitstellen aktualisierter oder neuer Plugins zum Ändern der Tabelle wp_options
- 9/2014 - Wie lade ich lokale Änderungen auf einen Live-Server hoch, ohne neue Beiträge / Seiten zu überschreiben?
- 1/2015 - Wie werden WordPress-Site-Blogs in Produktion und Inszenierung gepflegt?
Antworten:
Neuere Hosting-Anbieter, die speziell auf WordPress zugeschnitten sind, verfügen normalerweise über Tools, um diesen Schmerz zu lindern. Ich habe meine Kunden auf Pantheon gestellt, das über diesen übersichtlichen Git-fähigen Workflow verfügt , bei dem der Code nur nach oben (von der Entwicklung über die Bereitstellung bis zur Produktion) und das DB-Material nur nach unten (umgekehrt vom Code) verschoben wird. Das Kopieren einer Datenbank von der Produktion in das Staging erfolgt mit einem Klick über die Benutzeroberfläche. Vorausgesetzt, dieser Workflow wird eingehalten, entfällt das Problem, die Produktionsdatenbank jemals durcheinander zu bringen, und ich kann meine Änderungen in beiden Entwicklungsphasen immer auf einem neuen Klon von Produktionsdatenbanken testen.
Pantheon muss nicht verwendet werden - Sie können einen ähnlichen Ansatz in Ihrem Prozess mit Ihren eigenen Tools anwenden (Git + ein DB-Klon-Plugin wie WP Migrate DB). Ich finde nur, dass dieser Weg für mich gut funktioniert.
Frage: Warum sollten Sie Ihre Produktionsstätte beim Testen der Bereitstellung in den Wartungsmodus versetzen? In den meisten Fällen sollte dies nicht erforderlich sein. Der einzige Fall, den ich mir vorstellen kann, ist ein sehr sprödes System, das sehr empfindlich auf zusätzliche Benutzerdaten reagiert, mit einem katastrophalen Fehler beim Booten - aber das würde wahrscheinlich auf ein anderes, größeres Problem hinweisen, wenn es nötig wäre die gesamte Architektur ihres Produkts zu überdenken.
quelle
Schauen Sie sich VersionPress an, das die GIT-Versionierung auf den gesamten Prozess (Dateien und Datenbank) überträgt.
Wie auf ihrer Website beschrieben:
quelle