Proyecto
Un proyecto en Toba incluye definiciones tanto en código como en metadatos. Estos metadatos se almacenan en el sistema de archivos bajo el directorio metadatos del proyecto. Es importante diferenciar el concepto estático de metadato de sus instancias, un proyecto puede vivir en diferentes instancias permitiendo el trabajo de distintos grupos en forma aislada.
Sistema de archivos
El sistema de archivos del proyecto generalmente se encuentra bajo el directorio proyectos de toba. En este árbol debe tener este layout básico:
- id_proyecto
- php: Carpeta que se incluye en el
include_path
de php, por lo que se recomienda usarlo para contener todas las clases particulares del proyecto. - metadatos: Directorio donde se almacenan los metadatos propios del proyecto.
- www: Contiene archivos estaticos (imagenes, javascript) y los distintos Puntos de Acceso del proyecto.
- php: Carpeta que se incluye en el
Comandos útiles
Creación
Para crear un proyecto vacío es necesario ejecutar el comando:
toba proyecto crear -p mi_proyecto
Esto crea los metadatos, los carga en la instancia, posteriormente crea un sistema de archivos básicos conteniendo estos metadatos y los puntos de acceso por defecto. Este comando es necesario ejecutarse una sola vez durante toda la historia del proyecto.
Exportación
Una vez creado el proyecto y habiéndose realizado modificaciones sobre él, por motivos de versionado, backup, sincronización con equipos remotos o lanzamiento del producto es necesario exportar los metadatos desde la BD (la instancia) hacia el sistema de archivos.
toba proyecto exportar -p mi_proyecto
Los metadatos del proyecto vuelven al sistema de archivos listos para ser versionados. Además de exportar los metadatos puros del proyecto se exportan los metadatos comunes de la instancia (información de usuarios, log, etc.)
Carga
Si el proyecto ya ha sido creado, pero no se encuentra actualmente cargado en la instancia, para poder modificar y trabajar con un proyecto se necesita ejecutar:
toba proyecto cargar -p mi_proyecto
Actualización
Es común recibir los archivos de un proyecto y recargarlo sin modificar el resto de la instancia, para esto ejecutar:
toba proyecto regenerar -p mi_proyecto
Tener en cuenta que esto borra los metadatos y los vuelve a cargar desde el sistema de archivos, así que generalmente requiere una exportación previa para no perder los datos modificados localmente.
NOTAS
Desde la versión 8.1 postgreSQL
por defecto no permite más joins en forma implícita en los DELETES, para
la regeneración y el borrado del proyecto esto es necesario. Para
permitirlo setear en true
la cláusula add_missing_from
de la
configuración de postgreSQL.