Openbravo Forum End of Life Notice

Dear Openbravo Forum User,

Because of continued very low usage we decided to stop the forums on 31st of August 2017

In case of questions: webmaster "at" openbravo.com

DBSourceManager - Manejando cambios en diccio

<<

Fernando La Chica

Posts: 151

Joined: Wed Mar 18, 2009 7:26 pm

Post Thu Apr 03, 2008 9:57 am

DBSourceManager - Manejando cambios en diccio

Hola a todos,

aunque exista un foro de este tema prefiero poner la consulta aquí ya que me siento más comodo en español.

La duda:

Cuando desarrollo funcionalidades para openbravo suelo utilizar dos entornos; el primero para probar y el segundo para producción. Hasta ahora, cada paso a productivo de funcionalidades que tocaran algo del diccionario lo hacía a mano pero creo que la utilidad DBSourceManager puede ayudarme a automatizar esto.

La pregunta es ¿Me permite la herramienta pasar a XML el diccionario de la aplicación y viceversa?

Muchas gracias.
<<

davidbernuz davidbernuz

Posts: 52

Joined: Fri Mar 27, 2009 10:30 am

Post Thu Apr 03, 2008 10:21 am

RE: DBSourceManager - Manejando cambios en di

Hola,

La herramienta de exportación de base de datos a formato xml NO está pensada para esa función, sinó para poder controlar con una herramienta de versiones los cambios de base de datos.

Entonces para subir a productivo...
Para trabajar como tu dices, supondría que las bases de datos fueran idénticas en el inicio del desarrollo y que no se añadieran datos durante el mismo, ya que de otra manera cuando importaras se borrarían. Vamos un escenario nada viable.
Por otro lado no te recomiendo en absoluto intentar abrir los ficheros y jugar, ya que añadir un registro a mano supone cambios en multiples tablas y requiere un conocimiento del modelo de datos muy exhaustivo. Vamos que al final sale más económico (en tiempo) modificarlo a través de la aplicación.
Si yo fuera tu y pudiera dedicarle un par de días a esto haría lo siguiente: intenta picarte un pl o aprovechar una herramienta de las de oracle para hacer un export de las tablas del diccionario con cierta lógica. Se trata de generar una linea de inserción por cada nuevo registro. Luego tendrías que hacer las inserciones en productivo, y ajustar las claves primarias y sequencias de nuevo y compilar. ¿Como lo ves?


Para bajar de productivo a desarrollo la herramienta es perfecta.


Un saludo
<<

Fernando La Chica

Posts: 151

Joined: Wed Mar 18, 2009 7:26 pm

Post Thu Apr 03, 2008 3:43 pm

RE: DBSourceManager - Manejando cambios en di

Hacer el PL me parece una alternativa más elegante que el tener que picar los cambios de nuevo en la aplicación pero . . . debatamos un poco si te parece . . .

centrandonos en tu frase:

"Para trabajar como tu dices, supondría que las bases de datos fueran idénticas en el inicio del desarrollo y que no se añadieran datos durante el mismo, ya que de otra manera cuando importaras se borrarían. Vamos un escenario nada viable."

Yo creo que

Esta aplicación es capaz de alterar el modelo de tablas, en concreto añadir nuevos campos, y contenido de las mismas, ya que para subir de versión, al menos, las tablas ad_ cambian en contenido y las c_ en numero de campos. En cuanto a los datos que no estén en tablas ad_ no habría que tocar nada. ¿Sabes o sabe alguien si esta herramienta cumple estas dos premisas? ¿Me aconsejas o aconsejais que mejor modifique esta utilidad o que me fabrique el PL?

Quedo muy agradecido por tan pronta respuesta.

<<

davidbernuz davidbernuz

Posts: 52

Joined: Fri Mar 27, 2009 10:30 am

Post Thu Apr 03, 2008 4:18 pm

RE: DBSourceManager - Manejando cambios en di

Hola Fernando,

Te contesto rápido porque es un tema que a mi tb me interesa muchísimo, la puesta en producción a partir de un entorno diferenciado de desarrollo, ya que si queremos que Openbravo sea una solución para empresas mínimamente grandes con un departamento de IT estos temas deberían aclararse.

La herramineeto de export database a XML es una herramienta que no entiende de lógica lo que hará será construir una nueva base de datos encima de la exostente a partir de los contenidos de tus ficheros XML, personalemente me parece muy peligroso (y una responsabilidad que no quiero para mi) tener que andar jugando a saber que tablas han sido modificadas. Creeme porque he jugado con este proceso y cuando importas y se genera una inconsistencia de datos por ejemplo de secuencias tienes que volver a generar la base de datos a partir del backup previo (si es que lo has hecho :P)

En un ejemplo típico. Supongamos que el cliente quiere una modificación consistente en un nuevo check en la ventana de pedido de compra, tendrás que hacer varios pasos que ahora no voy a detallar pero uno de ellos será crear un nuevo campo en la tabla purchase order por ase de datos, luego mediante el diccionario añadiras el nuevo campo a la tabla para que el sistema lo reconozca y finalmente lo añadirás en la ventana.

Pues bien si lo hicieramos con este proceso, deberías bloquear la tabla purchase order o de otra manaera cuando importaras todas las tablas te pisaría los nuevos registros. ¿No se podría utilizar las AD_ de desarrollo y las C_ de prod? No porque no tienes las mismas columnas en la tabla purchase order y cuando importes la liarás.

Por eso, y siento la parrafada, yo creo que se debería crear un proceso PL de base de datos (Si alguien se curra un Java ya sería leche) que fuera capaz de recorrer las tablas AD y localizar los nuevos registros, desactivara las constraints, insertara los registros siguiendo la sequencias correctas, activara de nuevo las constraints y finalmente corriera el proceso de actualización de sequencias. De esta manera te garantizar un proceso automático de subida a prducción en la que al administrador de entornos solo le pedirás que sepa del proceso de subida y donde podrías implementar checks muy facilmente.

Como lo ve el resto de gente?

Un saludo,

David







<<

Miguel Márquez Romero

Posts: 557

Joined: Wed Mar 18, 2009 7:25 pm

Post Thu Apr 03, 2008 4:39 pm

RE: DBSourceManager - Manejando cambios en di

Pues la idea me parece genial. Yo también estoy con el mismo problema. De hecho el otro día perdí más de un día en subir versión a un cliente con 4 ó 5 ventanas y tablas nuevas, además de algún que otro procedimiento de la base de datos.

Como bien habéis dicho, es un tema peligroso, pero a la vez primordial para conseguir que Openbravo sea uno de los mejores ERP del mundo.

Pienso que en esto debería entrar el Openbravo Team, pues son quienes controlan al 100% el modelo de datos del diccionario de la aplicación.

Por un lado, lo que es crear las tablas, columnas, procedimientos, disparadores, vistas, funciones, etc. en la base datos no es complicado, pues bastaría con ir generando a lo largo del desarrollo de la versión un "super-script" de "CREATE", "ALTER", etc. que se lanzaría en la base de datos de producción y ya está.
Pero por otro lado, habría que insertar las tablas, columnas, ventanas, campos, entradas del menú y el arbol del menú, etc. en el Diccionario de la Aplicación, y eso seguro que se puede conseguir con un PL y o proceso java. Pero repito, en esta parte creo que necesitaríamos algo de ayuda del Openbravo Team.

Un saludo
<<

Miguel Márquez Romero

Posts: 557

Joined: Wed Mar 18, 2009 7:25 pm

Post Thu Apr 03, 2008 4:42 pm

RE: DBSourceManager - Manejando cambios en di

Es más, yo comencé a estudiar este tema en su día, y creo que localicé las tablas para las que el PL tendría que hacer los INSERT, UPDATE O DELETE:

--VENTANAS
SELECT *FROM AD_WINDOW

SELECT *FROM AD_WINDOW_TRL

--TABLAS
SELECT * FROM AD_TABLE

--ELEMENTOS DEL SISTEMA
SELECT * FROM AD_ELEMENT

SELECT * FROM AD_ELEMENT_TRL

--REFERENCIAS
SELECT * FROM AD_REFERENCE

SELECT * FROM AD_REFERENCE_TRL

SELECT * FROM AD_REF_LIST

SELECT * FROM AD_REF_LIST_TRL

SELECT * FROM AD_REF_TABLE

SELECT * FROM AD_REF_SEARCH

SELECT * FROM AD_REF_SEARCH_COLUMN

--VALIDACIONES
SELECT * FROM AD_VAL_RULE

--INFORMES Y PROCESOS
SELECT * FROM AD_PROCESS

SELECT * FROM AD_PROCESS_TRL

SELECT * FROM AD_PROCESS_PARA

SELECT * FROM AD_PROCESS_PARA_TRL

--CALLOUT
SELECT * FROM AD_CALLOUT

--COLUMNAS
SELECT *FROM AD_COLUMN

--SOLAPAS

SELECT *FROM AD_TAB

SELECT *FROM AD_TAB_TRL

--GRUPOS DE CAMPOS
SELECT *FROM AD_FIELDGROUP

SELECT *FROM AD_FIELDGROUP_TRL

--CAMPOS
SELECT *FROM AD_FIELD

SELECT *FROM AD_FIELD_TRL

--SECUENCIAS
ACTUALIZAR LA AD_SEQUENCE PARA LAS TABLAS DEL DICCIONARIO
<<

Fernando La Chica

Posts: 151

Joined: Wed Mar 18, 2009 7:26 pm

Post Wed Apr 23, 2008 5:08 pm

RE: DBSourceManager - Manejando cambios en di

¿Se ha perdido el interés por este tema?¿Existe alguna solucion trivial?
<<

Carlos Romero Herrero

Posts: 618

Joined: Fri Mar 27, 2009 3:43 pm

Post Wed Apr 23, 2008 5:36 pm

RE: DBSourceManager - Manejando cambios en di

Fernando,
Mira este enlace [1]
De hecho, nosotros utilizamos dbSourceManager cuando pretendemos llevar el desarrollo realizado entre dos ramas de desarrollo.

Carlos

[1] http://wiki.openbravo.com/wiki/index.php/Database_sources_management
<<

Fernando La Chica

Posts: 151

Joined: Wed Mar 18, 2009 7:26 pm

Post Tue Apr 29, 2008 9:50 pm

RE: DBSourceManager - Manejando cambios en di

Perdona mi torpeza pero:


Cuando hago una exportacion del modelo utilizo

ant export.database.structure

esto me guarda, por asi decirlo, las ddl de los objetos de la BB.DD. (Diccionario de datos). Pero ¿Que ocurriría si hago cambios en el diccionario de la aplicación?¿Cómo salvo el contenido de las tablas ad_ que comentaba mmarquez?

Gracias.
<<

Fernando La Chica

Posts: 151

Joined: Wed Mar 18, 2009 7:26 pm

Post Sat May 17, 2008 11:53 am

RE: DBSourceManager - Manejando cambios en di

Me explico con más claridad.

Cuando se hace ant export.database.structure te copia la tabla sin datos.

¿Es posible copiar las tablas sin datos excepto las AD_ cuyos datos definen las ventanas de OB?

Return to Spanish Help

Who is online

Users browsing this forum: No registered users and 1 guest

cron
Website Terms


Designed by ST Software for PTF.