Tim saya menghadapi masalah yang sama. Kami menggunakan git untuk versi kode kustom kami sendiri seperti plugin dan tema yang kami tulis. Kami menggunakan Komposer untuk mengelola dependensi seperti plugin yang tidak kami tulis. Kami memeriksa file composer.json dan composer.lock ke git untuk menjaga semua orang tetap sinkron. Setiap pengembang diharapkan untuk menarik cabang master git dan menjalankan composer update
playpens mereka sesering mungkin agar setiap orang tetap mendapatkan informasi terbaru.
Dalam database, pengembang terutama peduli tentang konfigurasi, dan kami sering menggunakan WP-CLI untuk menjaga konfigurasi tetap sinkron. Sebagai contoh, kami memiliki skrip shell yang menjalankan perintah WP-CLI untuk mengaktifkan atau menonaktifkan plugin berdasarkan per-host; beberapa plugin hanya digunakan pada host pementasan konten kami, misalnya, sehingga skrip dapat dijalankan pada host apa pun dan hanya akan mengaktifkan set yang sesuai pada host tersebut. Beberapa konfigurasi yang terlalu memakan waktu untuk skrip baru didokumentasikan dan direproduksi secara manual jika perlu.
Kami juga memiliki skrip perl yang akan sepenuhnya mengkloning database dari server pementasan konten kami ke QA atau host dev. Para dev dapat menggunakan ini secara berkala jika mereka menginginkan semua konten saat ini, meskipun itu biasanya kurang penting daripada memiliki kode dan konfigurasi. Script melakukan tugas-tugas ini:
- mySQL dump dari database server pementasan konten, mengubah nama tabel, memuat ke database server target
- gunakan wp-cli untuk mengubah referensi ke staging server dalam database untuk merujuk ke server target
- sinkronkan direktori unggahan pada server target dengan unggahan server pementasan konten
Ada beberapa solusi yang menjanjikan untuk benar-benar versi database yang datang dengan cepat. VersionPress dan Mergebot adalah dua yang saya tahu dan mungkin ada yang lain.
Saya menulis lebih banyak detail teknis tentang bagaimana kami mengatur WordPress untuk bekerja dengan git dan Composer di blog saya. Itu perlu dijalankan dengan inti WordPress di direktori sendiri untuk membuat pemisahan bersih antara kode yang ingin kita pertahankan di git dan inti WordPress. Kami memperlakukan WordPress sendiri sebagai dependensi dan mengelolanya dengan Komposer.