Mój zespół napotkał podobny problem. Używamy git do wersji własnego kodu niestandardowego, takiego jak wtyczki i motyw, który piszemy. Używamy Composera do zarządzania zależnościami, takimi jak wtyczki, których nie napisaliśmy. Sprawdzamy pliki composer.json i composer.lock w git, aby wszyscy byli zsynchronizowani. Od każdego dewelopera oczekuje się ciągnięcia gałęzi git master i composer update
częstego korzystania z kojców, aby wszyscy byli na bieżąco.
W bazie danych programiści dbają głównie o konfigurację i często używamy WP-CLI, aby zachować synchronizację konfiguracji. Na przykład mamy skrypt powłoki, który uruchamia polecenie WP-CLI w celu włączenia lub wyłączenia wtyczek dla poszczególnych hostów; niektóre wtyczki są używane tylko na naszym serwerze oceny zawartości, na przykład, więc skrypt można uruchomić na dowolnym hoście i włączyć tylko odpowiedni zestaw na tym hoście. Niektóre konfiguracje, które są zbyt czasochłonne dla skryptu, są po prostu dokumentowane i w razie potrzeby powielane ręcznie.
Mamy również skrypt perla, który całkowicie sklonuje bazę danych z naszego serwera oceny zawartości na host QA lub dev. Deweloperzy mogą używać tego okresowo, jeśli chcą całej bieżącej zawartości, choć zwykle jest to mniej ważne niż posiadanie kodu i konfiguracji. Skrypt wykonuje następujące zadania:
- Zrzut mySQL bazy danych serwera pomostowego zawartości, zmień nazwy tabel, załaduj do bazy danych serwera docelowego
- użyj wp-cli, aby zmienić odniesienia do serwera pomostowego w bazie danych, aby odwoływał się do serwera docelowego
- zsynchronizuj katalog uploads na serwerze docelowym z uploadem serwera pomostowego zawartości
Istnieje kilka obiecujących rozwiązań umożliwiających szybką wersjonowanie bazy danych. VersionPress i Mergebot to dwa, o których wiem i mogą istnieć inne.
Napisałem więcej szczegółów technicznych na temat tego, jak skonfigurowaliśmy WordPress do pracy z git i Composer na moim blogu. Konieczne było uruchomienie z rdzeniem WordPress we własnym katalogu, aby dokonać czystego oddzielenia kodu, który chcemy zachować w git i rdzeniu WordPress. Sam WordPress traktujemy jako zależność i zarządzamy nim za pomocą Composer.