Migración de proyectos toba de 2.5 a 3.2 y librerías

Buenos días:
Estamos migrando los proyectos de desarrollo de la universidad desde la versión 2.5 a la versión 3.2 de Siu-toba, con el objetivo final de poder incluir algunos de ellos, sino todos, en el portal Huarpe que se ha puesto en producción este año.
El entorno de desarrollo de los proyectos es una máquina virtual con debian 9, php 7.1, apache 2.4 corriendo con el usuario común del equipo, no como www-data.
En resumen los pasos que estamos haciendo para migrar los proyectos son:

                  - Descarga de template con clone al directorio del proyecto a migrar.
                  - Edición de archivo composer.json para incluir el framework 3.2 de toba y librerías que usa el proyecto.
                  - composer install
                  - Seteo de variables de entorno para instancia y directorio de instalación del proyecto.
                  - Instalación de toba para el proyecto.
                  - Copia de los archivos php y demás necesarios del directorio original (2.5) a directorio destino.
                  - Importación del proyecto a la versión nueva de toba.
                  - Modificación de los alias dentro del archivo toba.conf del proyecto (para poder pasar de un proyecto a otro sin tener que parar y levantar apache)
                  - Publicación del proyecto en la instancia de desarrollo

Con estos pasos al ingresar al navegador firefox por ejemplo en http://localhost/archivo/toba_editor/3.2 aparece el proyecto para continuar con el desarrollo.
Necesitaríamos saber si los pasos estarían bien o si nos ha faltado algo.

Adjunto archivo txt con los comandos corridos para la creación e importación del proyecto archivo.

Tenemos dos temas más para ver como manejarnos internamente.
- Tenemos un servidor svn con los proyectos nuestros, tendremos que tener cuidado de no versionar la carpeta vendor? para no pisar las instalaciones de los demás desarrolladores?
- Otra cuestión es saber como se pasa a producción el proyecto, dado que antiguamente usábamos empaquetado y por lo que hemos podido leer de algún otro hilo, no se usaría más.

Desde ya muchas gracias por su atención.

Saludos,
Marcelo.


migracion_proyecto_archivo_comandos.txt (20.7 KB)

Hola Marcelo,

Los pasos que fueron haciendo SON los correctos, solo un detalle…
Si al momento que realizan export TOBA_INSTANCIA=desarrollo, fijan tambien la variable de entorno export TOBA_INSTALACION_DIR= /home/marcelom/proyectos/archivo/instalacion, cuando hacen la instalacion del framework les queda todo listo y no necesitan mover nada luego, ni tocar los alias o el archivo de entorno.

Si te fijas seguramente exista un archivo /home/marcelom/proyectos/archivo/entorno_toba.env, dicho archivo es una copia del que se encuentra dentro de la carpeta instalacion, su objetivo es que puedas invocar los comandos con bin/toba desde la carpeta del proyecto sin tener que cargar el entorno primero.

- Tenemos un servidor svn con los proyectos nuestros, tendremos que tener cuidado de no versionar la carpeta vendor? para no pisar las instalaciones de los demás desarrolladores?
La carpeta vendor tiene que ir al svn:ignore, no asi el archivo composer.lock.
- Otra cuestión es saber como se pasa a producción el proyecto, dado que antiguamente usábamos empaquetado y por lo que hemos podido leer de algún otro hilo, no se usaría más.
Ahora el pasaje a produccion se hace mediante el paquete "siu/instalador", en el README del paquete tenes un link a la documentacion sobre requerimientos y pasos para que el proyecto tenga su propio mecanismo de instalacion/actualizacion que complete el circuito de deployment.

Saludos

Buenos días Richard:
Muchas gracias por las respuestas…
Retomando y ya queriendo pasar a producción el desarrollo.
Estuve mirando el readme del paquete instalador (corrí ./bin/instalador proyecto:definir-variables).
Luego leí lo que dice el readme el que se encuentra en el directorio doc.
Lo que no encuentro es como sería el proceso para pasar a producción en otro equipo de la red.
Se copia el proyecto al servidor de producción y luego se corre ./bin/instalador proyecto:instalar (o actualizar según corresponda)?

Saludos,
Marcelo.

Hola Marcelo,

exacto, bajas el proyecto donde debas… configuras las variables en el archivo de entorno y despues corres alguno de los comandos que mencionas (segun debas).

Saludos

Buenos días Richard:
Te cuento que anduvo bien la instalación y actualización de un proyecto desarrollado desde cero con la versión 3.2 de siu-toba.
Ahora bien. Estoy teniendo un problema al querer actualizar una aplicación desarrollada con toba 2.5. En desarrollo lo había migrado ya a la versión 3.2

        Corrí el comando ./bin/instalador proyecto_actualizar -d /usr/local/unpsjb/sea

       El instalador hace todos los chequeos, pero llega hasta un error que dice:
       [ ERROR ] El parámetro de entorno TOBA_DIR de la instalación anterior no corresponde con la ruta ''

       Buscando en Google apareció en este link https://gitlab.siu.edu.ar/siu/instalador/blob/de924ebc701c6ab1e98fd1521d65a7a9b0730972/src/SIU/Instalador/Toba/Paso/VerificarProyectoExistente.php

      if (!$this->is_actualizacion_exportacion) {
        $dir_toba = realpath($dir_instalacion."/../vendor/siu-toba/framework");
        if ($entorno_toba['TOBA_DIR'] == $dir_toba) {
            $msg = 'El parámetro TOBA_DIR de la instalación anterior esta configurado correctamente';
            $this->msgOkLog($msg);
        } else {
            $msg = "El parámetro de entorno TOBA_DIR de la instalación anterior no corresponde con la ruta '$dir_toba'";
            $this->msgErrorLog($msg);
            exit(1);
        }
    }
    Si no entendí mal la estructura del proyecto en producción no tiene ese directorio $dir_toba = realpath($dir_instalacion."/../vendor/siu-toba/framework"); 

    Estará faltando algo que debo setear?

Desde ya muchas gracias por tu atención.

Saludos,
Marcelo.

Hola Marcelo,

bien, en produccion no deberia ser tan distinto… salvo que el metodo de deployment varie mucho entre desarrollo y produccion.
Contame un poco mas como es que tenias estructurado el proyecto en la version 2.5 en prod.

Corrí el comando ./bin/instalador proyecto_actualizar -d /usr/local/unpsjb/sea
       El instalador hace todos los chequeos, pero llega hasta un error que dice:
       [ ERROR ] El parámetro de entorno TOBA_DIR de la instalación anterior no corresponde con la ruta ''</blockquote>

Si, el instalador esta asumiendo ciertas locaciones debido al uso de composer… si venis de un deployment manual o de un paquete que no usaba composer hay que meter un poco de garfio para que vaya bien.

Si no entendí mal la estructura del proyecto en producción no tiene ese directorio $dir_toba = realpath($dir_instalacion."/../vendor/siu-toba/framework"); Estará faltando algo que debo setear?
Este es el tema, cuando usas composer naturalmente el framework queda ahi adentro.. pero en 2.5 la estructura de directorios primeramente estaba invertida (con Toba por fuera) y si es un deployment manual, mas complicado aun. Por eso te pedi que me cuentes mas de como esta, asi te puedo guiar mejor con los pasos a llevar adelante.

Si usaban el instalador web, te deberia haber quedado una estructura con 3 carpetas:

  • Aplicacion
  • Instalacion
  • Toba

Si era manual, deberias tener la de Toba con todo adentro.

Saludos

Buen día Richard:
Te cuento que efectivamente usábamos el instalador web (empaquetado).

y si tenemos las aplicaciones instaladas con la estructura que escrbiste:
- Aplicacion
- Instalacion
- Toba
Ayer probé de hardcodearle el path a la linea y actualizó la aplicación, pero no se si es lo que se debe hacer. :):):slight_smile:

Saludos,
Marcelo

Hola Marcelo,

arranco por el final:

Ayer probé de hardcodearle el path a la linea y actualizó la aplicación, pero no se si es lo que se debe hacer. :):):)

el tema es el siguiente, tenes que hacer la transicion desde el formato viejo sin composer al nuevo… una vez hecha esa transicion, el instalador como viene te va a funcionar sin problemas… pero para dar ese salto algo vas a tener que tocar.

Bien, la cosa es un poco mas simple entonces… una opcion podria ser convertir esa estructura (luego de un backup) de la siguiente forma:

  • Aplicacion
    • Aplicacion/instalacion
    • Aplicacion/vendor/siu-toba/framework (aca copiar el contenido de la carpeta Toba)

Que es mas o menos lo que el instalador esta esperando.
Tambien existe un archivo .sh (el cual carga el entorno) que deberia ser copiado a la raiz del proyecto con el nombre ‘entorno_toba.env’ y sus valores ajustados para representar la nueva estructura.

Con eso, el instalador deberia ir sin problemas sin tener que tocar el codigo.
De todas maneras, como te decia antes… la cuestion es dar el salto, si ya lo hiciste … funciono bien y te dejo todo en orden (con la estructura como te digo arriba, usuarios, etc), segui a partir de ahi… no le des mas vueltas.

Si haria una prueba extra con el otro mecanismo (offline) por si hay que hacer futuras migraciones asi de otros proyectos, al menos sabes que tenes un procedimiento que funciona.

Saludos

Hola Richard:
Muchas gracias por los tips. Ya hemos migrado tres aplicaciones con el método de cambiar la linea, pero quedan varios más por migrar, probaremos con la opción que proponés. (Igualmente esto se hace por única vez, a partir de ahora debería actualizar sin problemas).
Se podría decir que ya estamos en camino…:)…
Saludos,
Marcelo.

Hola Marcelo,

joya… cualquier cosa, ya sabes.

Saludos