Powszechnie przyjmuje się, że programiści powinni testować aktualizacje za pośrednictwem strony testowej przed wydaniem ich na serwerze na żywo, jednak gdy aktualizacje programistyczne wymagają modyfikacji w Wordpress DB, sprawy się komplikują, ponieważ użytkownicy w witrynie na żywo również zaktualizują DB.
Jedyny (zamglony) przepływ, jaki mogę sobie wyobrazić, jest następujący:
- Test na lokalnym serwerze (WAMP, XAMP itp.)
- Gdy wszystko będzie gotowe do wdrożenia, ustaw działającą witrynę w trybie konserwacji
- Kopia zapasowa witryny na żywo (powielacz, sqldump itp.)
- Utwórz klon zablokowanej witryny na żywo do strony pośredniej
- Prześlij modyfikacje ze środowiska lokalnego do witryny pomostowej
- Przetestuj stronę testową
- Wciśnij stronę inscenizacji, aby żyć.
- Usuń tryb konserwacji
Wady przepływu powyżej:
- przestoje mogą być dłuższe niż oczekiwano dla użytkowników, gdy programista dokładnie testuje aktualizacje w witrynie pomostowej;
- może wymagać ręcznego zarządzania modyfikacjami: na przykład układy programu budującego strony siteorigin są przechowywane w bazie danych, więc po zmodyfikowaniu układu należy go ręcznie zaimportować w witrynie pomostowej; w takim przypadku wystarczy po prostu upuścić i zaimportować strony do witryny pomostowej, a jeśli działa, zaimportować je do witryny na żywo
Zastanawiam się, czy istnieje lepszy i bardziej zautomatyzowany sposób na osiągnięcie tego.
Co myślisz?
EDYCJA, zgodnie z żądaniem, niektóre rozwiązania były proponowane w przeszłości, ale żadne nie oferuje ostatecznego rozwiązania:
- 9/2010 - Synchronizacja bazy danych między programowaniem / etapowaniem a produkcją
- 12/2011 - Wdrażanie zaktualizowanych lub nowych wtyczek modyfikujących tabelę wp_options
- 9/2014 - Jak przesłać lokalne zmiany na serwer na żywo bez nadpisywania nowych postów / stron?
- 1/2015 - Jak utrzymywać blogi witryny wordpress w produkcji i inscenizacji?