Mi equipo enfrentó un problema similar. Usamos git para versionar nuestro propio código personalizado, como los complementos y el tema que escribimos. Usamos Compositor para administrar las dependencias, como los complementos que no escribimos. Revisamos los archivos composer.json y composer.lock en git para mantener a todos sincronizados. Se espera que cada desarrollador saque la rama maestra de git y ejecute composer update
en sus parques con frecuencia para que todos se mantengan actualizados.
En la base de datos, los desarrolladores se preocupan principalmente por la configuración, y a menudo usamos WP-CLI para mantener la configuración sincronizada. Por ejemplo, tenemos un script de shell que ejecuta un comando WP-CLI para habilitar o deshabilitar los complementos por host; algunos complementos solo se usan en nuestro host de almacenamiento de contenido, por ejemplo, por lo que la secuencia de comandos se puede ejecutar en cualquier host y solo habilitará el conjunto apropiado en ese host. Algunas configuraciones que consumen demasiado tiempo para la secuencia de comandos solo se documentan y reproducen manualmente si es necesario.
También tenemos una secuencia de comandos de Perl que clonará completamente la base de datos de nuestro servidor de almacenamiento de contenido en un QA o host de desarrollo. Los desarrolladores pueden usar esto periódicamente si quieren todo el contenido actual, aunque eso suele ser menos importante que tener el código y la configuración. El script realiza estas tareas:
- volcado de MySQL de la base de datos del servidor de almacenamiento de contenido, cambio de nombres de tablas, carga en la base de datos del servidor de destino
- use wp-cli para cambiar las referencias al servidor de almacenamiento dentro de la base de datos para referirse al servidor de destino
- sincronizar el directorio de cargas en el servidor de destino con las cargas del servidor de contenido de contenido
Hay algunas soluciones prometedoras para la versión real de la base de datos que se están presentando rápidamente. VersionPress y Mergebot son las dos que conozco de y puede haber otros.
Escribí más detalles técnicos de cómo configuramos WordPress para trabajar con git y Composer en mi blog. Fue necesario ejecutar el núcleo de WordPress en su propio directorio para hacer una separación clara entre el código que queremos mantener en git y el núcleo de WordPress. Tratamos a WordPress como una dependencia y lo gestionamos con Composer.