Mein Team und ich arbeiten mit einem Kunden zusammen, der eine bestehende WordPress-Site mit einigem Inhalt und einem von ihm erstellten benutzerdefinierten Thema hat. Es ist ein Gruppenblog, dh es gibt mehrere Blogger auf der ganzen Welt, die ständig Inhalte hinzufügen und bearbeiten.
Unsere Aufgabe ist es, ein völlig neues Thema mit einigen neuen Funktionen zu erstellen. Einige dieser Funktionen erfordern neue benutzerdefinierte Widgets, Plugins und Datenbankfelder.
Derzeit arbeiten wir an unseren eigenen Entwicklungsmaschinen und integrieren sie in einen einzelnen Entwicklungsserver. Der gesamte Code ist in SVN versioniert. Unser ernannter Datenbankadministrator führt derzeit alle Datenbankänderungen manuell in der Entwicklungsdatenbank zusammen, obwohl er dies hoffentlich bald automatisieren kann.
Wir haben gerade angefangen, über unseren Produktionsfreigabeprozess zu sprechen. Das heißt: Wie können wir, sobald wir fertig sind, all unseren benutzerdefinierten Code reibungslos und mit so wenig Unterbrechungen wie möglich auf den Produktionsserver (den Live-Server) übertragen?
Wir haben einige Pläne, aber ich würde gerne hören, wie andere dieses Problem ebenfalls angegangen sind. Gibt es Best Practices zu befolgen oder bekannte Fallstricke zu vermeiden?
Ich bin mir nicht sicher, ob dies zutrifft, aber ich habe gerade einen ähnlichen Prozess durchlaufen, bei dem eine Website mit hohem Datenverkehr gleichzeitig migriert und aktualisiert wurde.
Die grundlegende Strategie bestand darin, auf einem Staging-Server zu arbeiten, dann, wenn alles fertig war, einen MySQL-Speicherauszug auf dem Live-Server zu erstellen, ihn auf den Staging-Server zu importieren, alle erforderlichen Bereinigungen durchzuführen und dann die DNS-Einträge auf den Staging-Server zu verweisen, wodurch der Fehler verursacht wurde Staging-Server, um der neue Live-Server zu werden.
Das knifflige Bit besteht darin, alle Daten, die sich während der DNS-Weitergabe ansammeln, auf dem Staging-Server (der jetzt der Live-Server ist) zusammenzuführen. Mit anderen Worten, wenn 30 Stunden zwischen dem Ausführen Ihres Mysql-Dump / Update-DNS und dem Abschluss der DNS-Weitergabe vergehen, müssen Sie selektiv 30 Stunden an Datensätzen von der alten Site zur neuen zusammenführen.
Es ist kein nahtloser Prozess, aber als wir eine Woche später waren, hatten sich alle Knicke ausgeglichen.
quelle
@Mike Lee: Tolle Frage und einer der heiligsten Gründe für WordPress (oder eines der mir vertrauten Open-Source-Mainstream-CMS wie Drupal, Joomla et al.)
Auch wenn es sicherlich nicht für Ihren Anwendungsfall gedacht ist, lesen Sie meine Antwort auf eine verwandte Frage, die ein Beta-Plugin beschreibt, das ich gerade über WordPress Answers Exchange zur Verfügung gestellt habe und das WP Migrate Webhosts heißt (ja, wenn es um das Benennen von Motiven geht , bin ich scheiße) .)
Aber ich möchte auch den von Ihnen beschriebenen Anwendungsfall mit einem Plugin lösen und denke derzeit darüber nach, wie dies erreicht werden kann. Ich denke, der Weg, dies zu erreichen, besteht darin, es nicht länger generisch zu lösen und stattdessen die bekannten Muster in WordPress anzusprechen und es dann jedem anderen zu ermöglichen, mein Plugin für spezielle Anwendungsfälle zu " binden ". Ich denke auch, dass ein Ansatz darin besteht, die Daten und Strukturen in WordPress als Daten in einer PHP-Datei zu serialisieren, so dass ein zukünftiges Plugin diese Änderungen als Deltas anwenden kann, genau wie ein Quellcode-Kontrollsystem Deltas anwendet, um zur aktuellen Version der Quelle zu gelangen Code.
Während ich Ihr Problem nicht vollständig beantworte oder löse, hoffe ich, dass ich Ihnen gute Denkanstöße gebe und auch hoffe, dass Sie oder jemand anderes an einer möglichen Lösung mitarbeiten möchten.
quelle