
Hector Vasquez
PreguntaSi tengo un proyecto con 3 ambientes, por ejemplo:
miproyecto.com/ (<- este es producción)
Y cada una tiene un archivo de configuración, donde se especifica a qué ambiente se conecta dentro de un mismo api (cada una con su propia BD):
Cuál es la mejor práctica para manejar estos 3 ambientes por git? teniendo en cuenta que cada ambiente se diferencia solo en el archivo de configuración, por el ambiente api al que apunta.
O no es buena práctica manejar los ambientes de esta manera inicialmente?
Rodrigo Raul Flores Perez
Hola a todos.
Yo justo tengo esa misma pregunta porque estoy trabajando con código que debe correr local, en nube privada y en nube pública, cada uno con sus particularidades (archivos de configuración independientes), lo que sigue es, saber si es recomendable usar branches y si esto puede ser utilizando de manera posterior por un sistema de entrega continua. ¿Alguna experiencia con relación a esto?
Oswaldo E. Montaño
Hola a todos.
Aún cuando dicen que es raro lo que quieres hacer creo que es válido lo que planteas.
Yo recomiendo que te crees las ramas DESARROLLO y QA o las que necesites, las cuales evidentemente deben trabajar con su conexión de DB a parte, a fin de garantizar la integridad de los datos en tu BD primaria.
Lo único que debes hacer es, girar instrucciones a los desarrolladores que estén trabajando en esas ramas alternas, que luego de clonar el proyecto, no le hagan seguimiento al archivo de configuración a la BD.
Para esto creo que te puede servir el comando:
$ git mv [file-original] [file-renamed]
que permite renombrar un archivo y dónde file-renamed puede ser el mismo nombre file-oginal, a fin de no tener que cambiar nada en otra parte del código. Pero el SCV deja de hacerle seguimiento por tratarse de un nuevo archivo.
De esta manera cuando sean apropiado se fusionen estas ramas al MASTER y no se altera de ningún modo tu archivo de configuración a la BD principal.
Considero lo más apropiado, pero quedo abierto a las observaciones de los compañeros, espero sus apreciaciones al respecto. Saludos!
Luis Antonio Guillen Galindo
Usa .gitignore, agrega el archivo de configuración para que no lo tome en cuenta y en cada ambiente crea el archivo con la configuración que corresponda.
En cuanto a la API, si es raro el como lo manejas, la API me quiero imaginar que es un proyecto aparte, por lo que tal vez sea otro repositorio, entonces es clonarlo en cada ambiente.
Saludos.

Mike Nieva
Héctor qué tal.
Es rara la configuración que quieres hacer.
El objetivo de los ambientes es separar tus experimentos y pruebas del verdadero código que quieres que tus usuarios vean.
Con el ambiente de desarrollo, tendría un único API para comunicarme con la base de datos global y de ahí, que pueda hacer pruebas mucho más reales.
Y, lo correría en otro dominio-servidor.
Entiendo qué quieres lograr, pero no entiendo totalmente la necesidad de hacerlo así.