Sincronice las bases de datos con la implementación de git

Por lo tanto, tengo un server VPS con CentOS y decidí usar git para la implementación. ¡Hombre! Eso es gracioso. ¡Empuje, listo! Estoy realmente más feliz de lo que estaba con el antiguo enfoque de ftp.

Pero desearía poder ir más lejos, hoy despliega automágicamente todos mis files, pero ni siquiera toca mi DB. Y si lo cambio en los mods, tengo que actualizarlo manualmente. Así que estaba pensando en usar algunos ganchos git para hacer esto también automáticamente.

En este momento estoy usando un gancho git en el server, es un gancho post-recepción y, básicamente, copy los files en el directory de producción cuando se lo envía al maestro.

Los requisitos previos para la implementación de DB son:

  1. Tiene que ir en ambos sentidos, si lo saco de db, y es diferente de mi local, debería actualizar mi db local.
  2. Debe basarse en modificaciones y parches y no en el volcado de todo el DB, de esta forma puedo trabajar con el equipo sin comprometer el trabajo de otros muchachos.

Estaba pensando en mantener un db.sql en el control de versiones, y crear un script para analizarlo en post-receive (en el server) y post-merge (en local), para que pueda tomar los mods y aplicar, y lo haría mantener una database de las modificaciones que ya se aplicaron (la secuencia de commands debe ejecutarse tanto en el cliente como en el server).

¿Alguno de ustedes ya ha hecho algo similar a esto? ¿Qué recomendarías?

Muchas gracias ya,