Es y no es fácil, las posibilidades son bastante amplias, cada una con sus ventajas y sus desventajas, ¿qué hago yo?.
Situación: Quiero tener una aplicación de preproducción en el mismo servidor que usa mi cliente para que puedan probar libremente nuevas funcionalidades.
Opciones.
-
Genero una máquina virtual en la que activo un vServer express, el cual en muchos casos sirve, a menos que los datos de prueba sean demasiados o los catálogos muy grandes, etc. aquí no tengo que cambiar nada.
-
Genero una “copia” de mi solución actual con “OTROS nombres” para cada proyecto, tanto de datos como de aplicación. Esta “nueva” solución la instalo en el mismo vServer de producción de mi cliente y genero las instancias correspondientes obviamente utilizando una nueva carpeta de datos compartida.
Procedimiento:
Consideraciones iniciales.
Habrá que “mapear” la totalidad de cajas de aplicación y datos, tanto propias como heredadas (vBase, vErp, vDiseño, etc) en vDevelop menú soluciones, opción vista de todas las abiertas, ojo, solo debemos tener abierta la solución principal de nuestro aplicación, para ver únicamente dicha solución más las heredadas.
Aquí viene un punto importante, si no vamos a tocar el código de las heredadas “estándar”, digamos vBase, vDiseño, vMapJS, u algunas otras propias, podremos utilizarlas tal cual en nuestro proyecto de preproducción, considerar también si deseamos compartir las carpetas de datos de dichas soluciones o si deseamos crear nuevas sin compartir ningún dato de las de producción.
Para este ejemplo digamos que podríamos en un momento dado “tocar” o modificar código de las heredadas.
El procedimiento entonces será:
- Crear una nueva solución “completa” con un nuevo nombre.
- Crear la “estructura” de cajas de aplicación y datos, todas y cada una de ellas con un nuevo nombre, esto es “imprescindible”, ya que al instalar dicha solución en el mismo servidor de producción, si dejamos algún nombre de caja igual que el original, dicha caja sobreescribirá la de producción.
- Copiar primero todas las cajas de datos comenzando de la más baja hacia arriba, una por una cuidando que si alguna caja es punto de unión de dos ramas, antes de copiar dicha caja habremos de haber copiado primero sus ramas, una vez hecho esto ya copiamos la caja “pivote”.
- Copiar ahora todas las cajas de aplicación, igual de abajo hacia arriba.
Siguiendo este procedimiento y cuidando el orden en que copiamos no tendremos mayores problemas, y podremos instalar dicha solución en el mismo servidor, con otro nombre y en otra carpeta de datos, ya solo será dar los permisos a los mismos usuarios ya dados de alta a dicha solución.
Cuando haya que actualizar la solución de producción, simplemente abrimos ambas soluciones, borramos el contenido completo de cada caja y lo sustituimos con una copia “normal” ctrl-c ctrl-v cuidando siempre copiar primero cajas de datos y luego cajas de aplicación que hayan sido modificasas en preproducción.
A mi me funciona y nunca he tenido problemas con este método, y aún proyectos algo grandes no me toma más de 5 minutos hacer dichas actualizaciones, reitero, cuidando el orden al momento de hacer las copias.
La única pega que hasta el momento me he encontrado es que si tienes archivos adjuntos en el proyecto, debes borrarlos todos y volverlos a crear con cada copia, ya que si editas el proyecto en producción y desde vDevelop intentas utilizar el inspector de errores, el mismo romperá hasta que no arregles lo de los adjuntos, si bien es un problema no creo que sea grave una vez conocido. Ojo, solo rompe el vDevelop al usar el inspector de errores.
Si necesitas mayor apoyo con gusto te paso mi skype, aztecmexico, donde te podré ampliar mi experiencia y cuidados o detalles extras a tomar en cuenta.
Saludos.
Martin Ibarra.