Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





mysql, java y control de una DB muy cambiante

Iniciado por kittie4man, 20 de Octubre de 2009, 03:59:42 PM

« anterior - próximo »

kittie4man

Hola a todos!!

Despues de buscar por la web sin exito (espero no haber buscado mal :P) recurro a este foro que me a traido MUCHAS alegrias en cuanto a solucion de problemas cuando en mi tiempo libre programaba con OPENGL, SDL y C++.

El tema es asi:
Tengo una aplicacion en java cliente/servidor que al instalar crea automaticamente una DB según el mapeo de los elementos (vista, documento, etc) que heredan de un elemento (Element). Un adaptador mapea la estructura de estos elementos y crea la base de datos en MySQL (y MS SQL, etc).
Mi problema es que actualmente no tenemos un control de version automatica para la base de datos y cada vez que modificamos la base de datos tenemos que revisar que version tenia el cliente y hacerle los cambios a medida.

Mi intencion es hacer alguna clase en java (seria lo ideal) o aplicacion externa (como ultimo recurso) que controle la version del cliente y la del producto a instalar para realizar los cambios automaticamente (o lo mas automatico posible).
Tambien se me pidio que la version este identificada con un numero. Si no fuera por el numero se podria hacer un mapeo de los elementos y obtener la estructura de la DB para trabajar con esas 2 cosas pero con el numero me mareo ya.

Espero que me puedan ayudar.

Desde ya muchas gracias.
Salu2
Juan Pablo desde Argentina

fjfnaranjo

Te recomiendo que uses una app externa que parchee la base de datos, haciendo copias de seguridad para permitir roll backs. Y luego, en la app principal, no permitas que se conecte a una base de datos que no sea compatible.

Puede parecer un coñazo llevar dos apps por separado, pero te sirve para tener controladas las versiones de la base de datos y las copias de seguridad.

Acuérdate de que tienes que situar en algún sitio del esquema de la base de datos, un campo que indique la versión de la base de datos, y que nunca vayas a mover de sitio (para esto una vista funciona muy bien), para que la app pueda saber la versión de la base de datos sea cual sea la misma.
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

Vicente

Con el Visual Studio DB Pro puedes coger la BD vieja, la nueva (generada automáticamente si no te entiendo mal) y que te produzca un script de SQL que actualice una a la otra automáticamente. Lo malo que creo que solo funciona con MS SQLS, aunque lo mismo luego es "fácil" actualizar ese script a otras BDs.

Un saludo,

Vicente


fjfnaranjo

#3
De todas formas, hay herramientas libres para hacer eso mismo con MySQL.

EDIT

Link de herramienta de ejemplo: http://adamspiers.org/computing/mysqldiff/.

EDIT 2

Mismo tema en stackoverflow: http://stackoverflow.com/questions/218499/mysql-diff-tool.
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

kittie4man

Muchas gracias.

Yo sabia que en este foro tendria una respuesta rapida y efectiva.
Voy a probar las cosas que mencionan y pronto les comentare.

Muchas gracias
Salu2
Juan Pablo desde Argentina






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.