Gestionando las migraciones de Laravel en las sucursales de Git

En mi informe de Git tengo dos twigs principales, maestra y desarrollo . Luego, desde el desarrollo, creo más twigs al desarrollar nuevas funciones. Una vez que haya terminado con el desarrollo, me fusionaré para convertirme en maestro y desplegar. En Git también hago un seguimiento de mis migraciones de db.

Ahora mi problema es que tuve que hacer algunas correcciones en el maestro que implicaba modificaciones de esquema db (= migraciones). Así que me encuentro teniendo una estructura db en producción ( master ) y una estructura diferente en desarrollo ( desarrollo ), y algunas migraciones del desarrollo que deben ser inyectadas antes de las últimas migraciones en master de master que deben inyectarse antes de las últimas migraciones en desarrollo .

Una cosa más es que creo que los retrocesos no deberían aplicarse en la producción (se podrían perder los datos de producción).

Encontraré una salida a esta situación, pero me pregunto si existe un enfoque estándar para administrar dichos escenarios, especialmente cuando tienes una aplicación en producción.

Actualizar:

Creo que el próximo paso debería ser rebase desarrollar en master, incluyendo las migraciones maestras de hot-fix para desarrollar como se hicieron antes de cualquier trabajo en la twig de desarrollo .

Esto saca a relucir 2 problemas:

  1. Tengo varias twigs que parten del desarrollo y no sé cómo volver a clasificarlas de una vez en el maestro (si es que es posible)

  2. Las migraciones de Laravel en hot-fix master (creadas después de algunas migraciones en desarrollo ya se habían creado) tendrán sellos de time que vienen después de los de las twigs de desarrollo , así que no estoy seguro de que las migraciones se ejecuten incluso si ya jugué las maestras .

Creo que puedes ramificarte desde el maestro. Vamos a llamarlo Branch de BugFix.

  1. Repara tu error en la sucursal de BugFix
  2. Use el command git cherry-pick para seleccionar solo commits en BugFix que quiera involucrar en la twig maestra.
  3. Por último, puede volver a establecer la base o fusionarse con la twig de desarrollador como lo desee.

Espero que esto ayude. Deje un comentario si algo sale mal. Listo para ayudar.