Paso a producción

Tenemos algunas dudas al llevar la aplicación a producción, por un lado tenemos el instalador web provisto
que resuelve gran parte de las tareas de deploy en muy buena forma. Por otra parte no nos convence correr la web de instalación
en un servidor en producción y preferiríamos un script de consola para instalar la aplicación.
En fin, buscamos una solución intermedia. Además, disponemos de nginx y no de apache.

Tal solución podría ser:

Supongamos que creamos un proyecto llamado pruebas, lo empaquetamos y corremos el instalador web todo en la máquina del desarrollador.
Tenemos como resultado por un lado la db con sus esquemas para negocio, toba y auditoria, y por otro, en filesystem la carpeta pruebas con sus subcarpetas aplicacion, instalacion y toba.
En este punto la idéa sería llevar a producción y en pocos pasos lo generado por el instalador web, haríamos:

En la primera instalación crear en produccion la base del sistema utilizando un dump de la creada por el instalador web.
Pasar al administrador web la carpeta pruebas generada por el instalador web para que la publique en nginx.
indicarle al adminstrador web que corrija los archivos propios de la instalacion acorde al entorno de produccion, esto son:

instalacion/bases.ini (para poner los usuarios correctos de db y/o agregar conexiones a otras bases)
instalacion/toba.conf (solo para apache)
/instalacion/i__produccion/instancia.ini
/toba/bin/entorno_toba_2.3.sh

Hasta acá todo parece funcionar correctamente.

la duda viene con las actualizaciones, puesto que tenemos otros mecanismos para actualizar el esquema de negocios, decidimos
no pasar al administrador de db scripts sql para que actualice los esquemas, pero pensamos que sí debería actualizarse toba_pruebas para mantenerlo acorde a los nuevos metadatos de filesystem y lo hacemos corriendo en producción el comando toba proyecto regenerar.
Lo probamos con un proyecto chico y al parecer funciona correctamente, quisieramos saber si se les ocurre algún impedimento
que no advertimos nosotros para aplicar esta técnica de deploy

Gracias!

Con toba proyecto regenerar van a andar bien siempre y cuando no actualicen de rama de toba (ej. de 2.3 a un futuro 2.4). En cada cambio de rama es altamente probable que cambie la estructura de la base donde se almacenan los metadatos, asi que el regenerar probablemente tire un error SQL (ej. no existe el campo tal).
En concreto ese error no va a producir mucho, ya que el instalador utiliza los llamados metadatos compilados, que no es mas que un caching de la información de la base a archivos .php, para evitar hacer las consultas a la base continuamente que van a traer siempre la misma información.

De todas formas seria mejor evitar el error, lo pueden hacer usando toba instancia regenerar y responder ‘Sí’ a la pregunta si desean conservar los datos locales (usuarios, logs, etc.). Esto va a eliminar, crear y cargar la schema donde se encuentra la base de toba.