Моя команда зіткнулася з подібною проблемою. Ми використовуємо git для версії власного власного коду, такого як плагіни та тема, яку ми пишемо. Ми використовуємо Composer для управління залежностями, такими як плагіни, про які ми не писали. Ми перевіряємо файли composer.json і composer.lock в git, щоб всі синхронізувались. Очікується, що кожен розробник буде тягнути гіт-майстер гіта і composer update
часто працювати на своїх манежах, тому кожен залишається в курсі.
У базі даних розробники в основному дбають про конфігурацію, і ми часто використовуємо WP-CLI для підтримки синхронізації конфігурації. Наприклад, у нас є сценарій оболонки, який виконує команду WP-CLI для включення або відключення плагінів на основі хоста; деякі плагіни використовуються, наприклад, на нашому хості постановки вмісту, тому сценарій можна запустити на будь-якому хості та ввімкне лише відповідний набір цього хоста. Деяка конфігурація, яка занадто забирає багато часу для сценарію, лише задокументована та відтворена вручну, якщо це необхідно.
У нас також є сценарій perl, який повністю клонуватиме базу даних з нашого сервера постановки вмісту на хост QA або dev. Розробники можуть використовувати це періодично, якщо вони хочуть весь поточний контент, хоча це зазвичай менш важливо, ніж наявність коду та конфігурації. Сценарій виконує такі завдання:
- mySQL звалить базу даних сервера для постановки вмісту, змінюють назви таблиць, завантажують у базу даних цільового сервера
- використовуйте wp-cli для зміни посилань на стадіонний сервер у базі даних для посилання на цільовий сервер
- синхронізувати каталог завантажень на цільовому сервері з завантаженнями сервера, що контролює вміст
Є кілька перспективних рішень щодо фактичної версії бази даних, які швидко збираються. VersionPress і Mergebot є два я знаю , і там можуть бути і інші.
Я написав більше технічних деталей про те, як ми налаштували WordPress на роботу з git та Composer у своєму блозі. Потрібно було запустити з ядром WordPress у власному каталозі, щоб зробити чіткий поділ між кодом, який ми хочемо підтримувати в git, та ядром WordPress. Ми ставимося до WordPress як до залежності та керуємо ним разом із композитором.