El mejor enfoque al cambiar entre las configuraciones Prod y Dev en Git

Estamos usando Git y, como de costumbre, nuestro flujo de trabajo es desarrollo> puesta en escena> producción.

El proyecto tiene varios files de configuration. Durante el desarrollo, las configuraciones apuntan a bases de datos de desarrollo. Sin embargo, después de los cambios en el desarrollo y estoy listo para implementar, las configuraciones deberán cambiar y apuntar a las bases de datos de producción.

Durante la próxima ronda de cambios, tendré que cambiar las configuraciones de nuevo para apuntar a las bases de datos de desarrollo.

Este ciclo sigue repitiéndose, y es tedioso ya que tengo 3 files de configuration (lo mejor que puedo hacer es 2, ya que un file de configuration es para una biblioteca en particular).

¿Hay una mejor manera de hacer esto?

Supongo que su file de configuration contiene información de la database, como host, nombre de usuario, contraseña …

OMI: una buena forma de evitarlo es almacenar la información de la database en variables de entorno y getlas en su (s) file (s) de configuration.

Por ejemplo, en desarrollo, puesta en escena y producción, el host de la database se almacenaría en una variable de entorno llamada DATABASE_HOST . En el file de configuration, tendrías esta línea (código php )

  $databaseHost = getenv('DATABASE_HOST'); // ... 

Y como dijo @Lasse V. Karlsen, git debe rastrear una plantilla y el file de configuration en sí no debe ser ignorado. De esta manera, los desarrolladores no tienen que crear variables de entorno, y tienen que hacer es crear el file de configuration (git-ignorado por supuesto) de la plantilla y establecer su información de database (y por qué no otra información que depende de la server, entorno …)

Para resumir, el file de configuration debe ser ignorado, se debe crear una plantilla en su lugar. Al implementar, el file de configuration se crea a partir de la plantilla. El nuevo file de configuration obtiene las variables de entorno deseadas. Los desarrolladores, sin embargo, pueden crear estas variables de entorno en local o modificar los valores de su file de configuration.