Pasaje de bases para uso por parte de los desarrolladores

Hola,
estamos comenzando con personalizaciones en Guarani 3, y la cuestión que surge es cómo manejar el tema del pasaje de bases de datos a los desarrolladores para poder trabajar.

La base de guarani tiene la base de negocios y de toba en distintos schemas. Si pasamos el dump de una instancia con datos en forma periódica, tenemos problemas con los metadatos.

Alguien está implementando algo relativo a esto? Tienen los esquemas en distintas bases ?

Muchas gracias
Alejandro

Hola Alejandro,

Este podría ser un circuito que podrían seguir. En algunos cursos solemos mostrarlo y practicarlo.

Precondición: que los desarrolladores tengan en su entorno instalada la misma versión raíz (de tres dígitos) que en producción.

Consideración: en la base de producción se deberían tener cargados únicamente los proyectos toba_usuarios y guarani, ya que recomendamos como medida de seguridad y de buenas prácticas eliminar de esa instancia el toba_editor.

1. Realizar el dump de la base de producción y distribuirla a los desarrolladores.

2. Cada desarrollador, antes de restaurarla, se asegura de haber realizado un circuito de actualización completo (guarani actualizar). De esa manera, garantizamos que se tiene en la working copy todos los últimos cambios, principalmente los metadatos.

3. Cada desarrollador restaura el dump. Se crea una nueva base vacía (con encoding UTF8) y se restaura el dump.

4. En los archivos [b]bases.ini[/b] e [b]instancia.ini[/b], hacer un search & replace del nombre de la base anterior por el nombre de la nueva base. En este punto, tenemos apuntando el sistema (instancia y negocio) a la nueva base, donde no tenemos los últimos cambios de metadatos ni el toba_editor cargado.

5. En el bin de toba (lib/toba/bin) ejecutar toba proyecto cargar -p toba_editor -i desarrollo. Con esto cargamos los metadatos del Toba Editor en la instancia.

6. En el bin de guarani, ejecutar guarani regenerar. Con esto cargamos los últimos desarrollos, desde que se había puesto en producción la última versión de cuatro dígitos que acabamos de restaurar.

7. Si se desea blanquear los passwords de los usuarios, podrían seguir este ejemplo, que aplica a todos el pass 'toba':

--------------------------------------------------------------------------------
-- Establecer pass 'toba' al usuario 'toba' para login en Toba Editor
--------------------------------------------------------------------------------
SET search_path = desarrollo;

UPDATE 	apex_usuario  
SET 	clave = '$2y$10$KWA0khTxW3cp/i9GfCXxIOPpA7dK1g7i6VMVqPj1r8yhYiXBRluLm'
WHERE 	usuario = 'toba';

--------------------------------------------------------------------------------
-- Establecer pass 'toba' a todos los usuarios de Gestión y 3w
--------------------------------------------------------------------------------

SET search_path = negocio;

UPDATE 	mdp_personas
SET 	clave = '$2a$10$rt8wko8hRKIelokIMIWD.eEsDQyDQOOPsvhtB4B1emAVfdJCeCBVW';

8. Blanquear los datos de e-mail para evitar "mensajes automáticos accidentales" (ej: al probar el cierre de un acta):

UPDATE 	mdp_personas_contactos  
SET 	email = 'nuestroemail@gmail.com'
WHERE 	contacto_tipo IN ('MP', 'MI', 'MS'); -- Mail Principal / Mail Institucional / Mail Secundario

Cualquier duda avisanos.

Saludos,
Fernando

Gracias Fernando.

¿Uds están usando los dockers para el desarrollo?

Encontré algunos errores en el docker que los reporté mediante issues en el github en realidad y Andrés me fue respondiendo por ahí.

  • Los errores fueron relativos al funcionamiento del autogestión que tuve que tocar algunas cosas.

¿Cómo están haciendo con los desarrolladores? Les importan la base en el contenedor de postgres en docker o tienen las bases externas en otro lado?

Saludos
Alejandro