Migración toba2.7.9 a toba3.3

Buenas tardes, estamos intentando migrar la version de toba en un proyecto propio desde toba 2.7.9 a toba 3.3 y nos encontramos con un problema. Lo primero que intentamos hacer fue seguir los pasos que se indiciaron en un mensaje del foro [SOLUCIONADO]Migrar un proyecto de toba 2.7 a 3.3 - nº 7 por facknner - Toba - Desarrollo - Foro Comunidad SIU
"

  1. Instale toba 3.3 en un servidor nuevo. Quedo en la carpeta home/toba/ que tiene (composer.json composer.lock entorno_toba.env vendor
    )
  2. En el servidor que esa corriendo toba 2.7 ejecute los siguientes comandos

toba proyecto exportar -p {nuestro_proyecto}
toba instancia exportar_local

  1. Copie por completo la carpeta donde estaba el toba anterior al nuevo servidor en la carpeta /usr/local/src/toba_2_7
  2. Clonamos el proyecto al nuevo servidor
  3. Ejecute
    toba proyecto importar -p {nuestro_proyecto} -d /home/anterior/toba_2_7/ --destino ‘proyectos_toba/proyectos/{nuestro_proyecto}’
    "
    Esto arrojo errores, no era owner de apex_proyectos cambiamos el bases ini de la instalación anterior de toba y el nuevo error fue que la columna salida_impr_html_c ya existía

Por lo tanto borramos la instalación de toba junto con la base y volvimos a empezar de Cero, pero ahora lo que hicimos fue ejecutar
toba proyecto cargar -p {nuestro_proyecto} -d /ruta/{nuestro_proyecto} -i desarrollo

Pudimos cargar el código y el proyecto funciona correctamente pero nos falta la parte de migración de usuarios de un toba a otro junto con perfiles funcionales y de datos, ¿como podes realizar este proceso?

Por otro lado cuando instalamos toba nos pregunta si es una instancia de producción, ponemos que si como indica el instalador pero sin embargo lo que crea dentro de la carpeta instalacion es i__desarrollo

Esto ultimo lo comentamos por si puede llegar a causar problemas al importar el proyecto.

Espero nos puedan ayudar con la migración, desde ya muchísimas gracias.

Hola Martin,

Esto lo clonaste dentro de la instalacion de toba 3.3?.. como es que sabe el proyecto que instalacion de Toba va a usar?.

5) Ejecute toba proyecto importar -p {nuestro_proyecto} -d /home/anterior/toba_2_7/ --destino 'proyectos_toba/proyectos/{nuestro_proyecto}'

Esto lo ejecutaste desde donde? la instalacion de la version nueva?, las variables de entorno estaban correctas?.

Esto arrojo errores, no era owner de apex_proyectos cambiamos el bases ini de la instalación anterior de toba y el nuevo error fue que la columna salida_impr_html_c ya existía

Momento, esto no deberia ser necesario… se supone que tanto la instalacion vieja como la nueva ambas tienen permisos de acceso a la bd, de hecho podes usar el mismo usuario en el peor de los casos.
El segundo error debe estar relacionado a una ejecucion parcial… entre cada ejecucion del comando importar regeneraste la bd de la instalacion 2.7?

Por lo tanto borramos la instalación de toba junto con la base y volvimos a empezar de Cero, pero ahora lo que hicimos fue ejecutar toba proyecto cargar -p {nuestro_proyecto} -d /ruta/{nuestro_proyecto} -i desarrollo
Venias bien por el otro camino, esto unicamente se utiliza cuando haces una instalacion nueva y requeris cargar el proyecto que se laburo en otro lugar, no para migraciones. No vayas por este camino, porque hubo cambios en la estructura de la bd y va a haber cosas que no van a entrar directamente o van a quedar mal configuradas.
Pudimos cargar el código y el proyecto funciona correctamente pero nos falta la parte de migración de usuarios de un toba a otro junto con perfiles funcionales y de datos, ¿como podes realizar este proceso?

Para importar los usuarios, necesitas ejecutar toba instancia importar… los perfiles son del proyecto y por tanto deberian incorporarse luego de la migracion cuando el proyecto quede cargado.

Por otro lado cuando instalamos toba nos pregunta si es una instancia de producción, ponemos que si como indica el instalador pero sin embargo lo que crea dentro de la carpeta instalacion es i__desarrollo
Por que ponen que es una instancia de produccion?... estan realizando una migracion entre versiones, eso se hace si o si en desarrollo. El problema que te va a traer esto ultimo, es que al incorporar los perfiles funcionales aquellos que esten marcados como `editables en produccion` van a tener un tratamiento especial.

Saludos

Hola Richard, buenas tardes y gracias por tu respuesta

Esto lo clonaste dentro de la instalacion de toba 3.3?... como es que sabe el proyecto que instalacion de Toba va a usar?.

Cuando digo que clonamos el proyecto es que descargamos a traves de git nuestro proyecto, no el toba utilizado

5) Ejecute toba proyecto importar -p {nuestro_proyecto} -d /home/anterior/toba_2_7/ --destino 'proyectos_toba/proyectos/{nuestro_proyecto}'

Esto lo ejecutaste desde donde? la instalacion de la version nueva?, las variables de entorno estaban correctas?.

Esto lo ejecutamos con la nueva instalacion de toba, toba 2.7 esta instalado en un servidor distinto, no comparten servidor las dos instancias

Hagamos una cosa, empecemos de 0, hay algunos pasos a seguir para migrar un proyecto desarrollado en toba_2.7 a toba_3.3 incluyendo la migración de usuarios, perfiles de datos y perfiles funcionales?

Muchas gracias por la predisposición

Richard, una cosa mas, probamos instalar ambas versiones de toba en un mismo servidor 2.7 y 3.3

En toba 2.7 se encuentra levantado y funciondo el proyecto a migrar, instalamos toba_3.3 y desde este ultimo a traves de comandos toba

toba proyecto importar -p sum -d {ruta/spa_279/vendor/siu-toba/framework --destino {ruta}/toba_3.3/vendor/siu-toba/framework/proyectos -i desarrollo

Y este comando arroja el siguiente error

--------------------------------------------------------------------------------------------------- Regenerando PROYECTO sum ---------------------------------------------------------------------------------------------------

Exportando informacion local sum…OK
Borrando metadatos…OK
Cargando datos globales BUSCAR ARCHIVOS: El directorio ‘{ruta}/toba_3.3/vendor/siu-toba/framework/proyectos/metadatos/tablas’ es INVALIDO

Hola richard buenos días… Después de muchísima pelea logramos importar correctamente nuestro proyecto en toba_3.3 pero te comento algunas cosas que tuvimos que hacer…

la variable de instancia a exportar fue desarrollo
En la instalación de toba:

export TOBA_INSTANCIA=desarrollo

Una vez que toba estuvo instalado correctamente y funcionando
Luego con el comando

toba proyecto importar -p nombre_proyecto -d dir_instalacion_anterior --destino `pwd`
Importamos nuestro proyecto, el proceso terminó correctamente y al explorar el proyecto con toba_editor vemos que no había referencia a los archivos php del mismo por lo tanto incluimos el proyecto (copiamos el codigo) en vendor/siu-toba/framework/proyectos y lo referimos desde instancia.ini.

Todo este proceso se realizo en una maquina local, como para exportar el proyecto a toba 3.3, lo que queremos hacer es llevar este código exportado a un servidor con toba 3.3 instalado y funcionando. Lo que tendríamos que hacer es exportar el proyecto y luego cargarlo en la nueva instancia de toba. Después de eso, como haríamos para migrar todos los usuarios, perfiles de datos y perfiles funcionales desde el toba actualmente en producción en 2.7.9? Este último está en un servidor distinto al toba 3.3 al que queremos migrar.

Desde ya muchísimas gracias por la predisposición

Hola Martin,

Esta bien eso, mi intriga era saber si lo habian clonado dentro de home/toba/proyectos/sum o si el proyecto habia quedado en su propia carpeta.

Esto lo ejecutamos con la nueva instalacion de toba, toba 2.7 esta instalado en un servidor distinto, no comparten servidor las dos instancias

Mas alla de que el proceso de migracion accede fundamentalmente a la base de datos, necesita obtener los parametros de configuracion de la instalacion anterior… osea que tenes que tener ambas en el mismo servidor, aunque la 2.7 no necesariamente tiene que estar corriendo… sirve al mero hecho de apuntador y fuente de algunos datos.

Si, los comandos son medio marmotas no hacen expansion de variables en los parametros.

Venias barbaro hasta esta ultima parte de tener que copiar el proyecto dentro de la carpeta vendor, eso no es necesario y ademas tampoco recomendable porque con una actualizacion de paquetes via composer perderias el directorio en pos de poder actualizar.

La migracion debio dejarte correctamente apuntado al directorio sobre el cual corriste el comando de la migracion (por el valor pwd), en caso que no lo hubiere hecho… con modificar instancia.ini y reflejar dicho directorio te deberia haber alcanzado. En el peor de los casos si aun eso no genera los datos correctos… deberias ejecutar toba proyecto regenerar -p nombre_proyecto desde el directorio del mismo.

Eviten utilizar la carpeta …/siu-toba/framework/proyectos eso se dejo obsoleto al pasar a la version 3.0, luego de dicha version el proyecto les tiene que quedar como primer nivel y Toba dentro de vendor siendo esta ultima carpeta borrable en cualquier momento sin mayores preocupaciones de perder algo.

Todo este proceso se realizo en una maquina local, como para exportar el proyecto a toba 3.3, lo que queremos hacer es llevar este código exportado a un servidor con toba 3.3 instalado y funcionando. Lo que tendríamos que hacer es exportar el proyecto y luego cargarlo en la nueva instancia de toba.
Esta bien, la migracion es un caso de uso de los ambientes de desarrollo... si lo queres llevar al servidor ahora que lo tenes migrado, deberias commitear los cambios en Git en alguna rama del proyecto y luego realizas el pull en el servidor con toba 3.3, con un regenerar del proyecto (si ya esta cargado) te alcanzaria para incorporar los cambios, sino [b] toba proyecto cargar -p nombre -d path[/b]
Después de eso, como haríamos para migrar todos los usuarios, perfiles de datos y perfiles funcionales desde el toba actualmente en producción en 2.7.9? Este último está en un servidor distinto al toba 3.3 al que queremos migrar.
Una vez tenes lo anterior terminado.. supongamos que queres restaurar los usuarios del servidor de desarrollo viejo, teniendo la copia de la instalacion 2.7.x ... lo que harias seria ejecutar lo siguiente en la instalacion de Toba 3.3.

toba instancia importar -o desarrollo -d path_instalacion_anterior -r 1 

Con eso te alcanzaria para importar los usuarios y perfiles de datos… los funcionales son parte de los metadatos del proyecto.

Saludos