Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-07-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Bases de Datos, control de versiones

Creo que el titulo lo dice todo. Alguien esta usando control de versiones para las bases de datos? Hay alguna herramienta "magica"? O alguna herramienta que ayude en este proceso? O para el que no usa nada "externo", como llevan este control?

Investigando muy rapido parece que hay cosillas por ahi dando vuelta, como las que ofrece Devart aqui

Hablando bien claro, lo que seria la bomba para mi es, darle a alguna "herramienta" una estructura de una BD, (o que la extraiga de alguna BD), una BD contra la que compara, y que me genere un diff, osea, un script sql que al ejecutarlo me deje la base al dia

O estoy pidiendo demasiado?
Responder Con Cita
  #2  
Antiguo 28-07-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Facilísimo
Ahora falta que digas qué base de datos usas.
IBexpert hace exactamente lo que necesitas.
Responder Con Cita
  #3  
Antiguo 28-07-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Enserio? Que maravilla. Uso firebird en algún proyecto personal.

El problema es que también uso sqlite (en este lo tengo maso menos resuelto mediante código, pero sirve solo porque es un programa mono usuario y puedo "manosear" la base sin tanto miedo) y también sql server
Responder Con Cita
  #4  
Antiguo 28-07-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Pues lo que describes suena muy facil. Generar script de BD es algo que es muy comun. Para lo demas usas mercurial/git y sobreescribees el archivo par los diff, o usas una herramienta de diff de forma directa.
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 28-07-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por mamcx Ver Mensaje
Pues lo que describes suena muy facil. Generar script de BD es algo que es muy comun. Para lo demas usas mercurial/git y sobreescribees el archivo par los diff, o usas una herramienta de diff de forma directa.

Mario eso suena sencillo si. Cualquier herramienta de por ahi para gestionar BD te genera el script que crea la BD que quieras, a partir de su estructura.

Ahora, lo que yo digo, como hago para dada una BD llamemosle "instalada", compararla contra la BD "actualizada" y que genere un diff que me deje la "instalada" = "actualizada". Eso seria la bomba. Basicamente podria automatizar la tarea y que no dependa de mi. Sencillamente tendria que dar la orden de disparar mail "nueva version xxx, apreten actualizar" y listo.

Admito que no tengo muy estudiado algunos gestores, por ejemplo, IBExpert, que lo he usado para lo mas basico posible. Pero tiene varios menues con muchas opciones que aun no se que existen (como lo que comento Casimiro)

Luego para SQLite uso uno super liviano, SQLite Administrator, aunque para cosas tambien muy basicas, como para ejecutar queries rapidamente, o si estoy en pruebas y quiero editar algo

Con el que mas "cosas raras" he hecho fue con el de SQL Server de Microsoft, pero que yo sepa no tiene algo como lo que apunto arriba; aunque por supuesto que puede generar scripts de lo que sea, de hecho, te permite configurar muchos aspectos del script resultante

El tema de la automatizar la sincronizacion de la BD es lo que me falta para automatizar completamente el proceso de distribucion de mis aplicaciones

Última edición por AgustinOrtu fecha: 28-07-2016 a las 20:22:22.
Responder Con Cita
  #6  
Antiguo 28-07-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Entonces estas es buscando sincronizar las BD? No meramente usar control de versiones para la parte de desarrollo?

Porque sincronizar BD en produccion es todo otro cuento.
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 28-07-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo, muy resumidamente, tengo una tabla con un campo que se llama "version".
Según voy añadiendo cambios a la estructura de la base de datos, voy anotándolo en un script, junto con un número.
1 update .....
2 insert into ....
3 create table ....
4 delete from table where ...
5 etc.

Cuando ejecutan el programa, veo qué número de versión es la base de datos y ejecuto todas las sentencias a partir del número que toque.
Ejemplo, base de datos con campo versión 4. Ejecutaría a partir de la 5.
Básicamente es eso.
Responder Con Cita
  #8  
Antiguo 28-07-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El ibexpert tiene esta opción:

Responder Con Cita
  #9  
Antiguo 28-07-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por mamcx Ver Mensaje
Entonces estas es buscando sincronizar las BD? No meramente usar control de versiones para la parte de desarrollo?

Porque sincronizar BD en produccion es todo otro cuento.
Si, la verdad que releyendo me exprese muy muy mal. La idea era que mas o menos compartan como lo hacen o si usaban alguna herramienta en particular. Estoy seguro de que vi una por ahi que de forma visual te permitia ir analizando los diff y veias como van quedando las tablas, te pone con rojo lo que eliminas, con verde lo nuevo (similar a como hacne los diff/merge tool con codigo)

Yo lo que voy haciendo es tener una carpeta "SQL" en el repositorio git y ahi voy tirando todos los script. Luego tambien voy manteniendo un script general que crea la BD (este lo genera SQL Management Studio\IBExpert, etc) el cual actualizo cada tanto o cada vez que hago un release nuevo

Cuando uso git a veces me pasa que tengo que "volver en el tiempo", esto es muy facil cambiandose a otra branch y recompilando, o con un reset hard a tal commit. Resulta util en muchos casos.

A lo que apunto y que quiza sea super utopico, y de ahi me vino la idea de "control de versiones para BD", es algo similar pero con la base. Osea que sea cuestion de clicks, "poneme la estructura de la base a como estaba el 18/05/2013 en la rev xxxx" similar a como hago con el codigo

EDTIO: Casimiro muchas gracias, voy a estudiarlo. Lamentablemente en este momento Firebird no es la que mas me interesa, pero que lo voy a usar muy pronto seguro
Responder Con Cita
  #10  
Antiguo 28-07-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por AgustinOrtu Ver Mensaje
A lo que apunto y que quiza sea super utopico, y de ahi me vino la idea de "control de versiones para BD", es algo similar pero con la base. Osea que sea cuestion de clicks, "poneme la estructura de la base a como estaba el 18/05/2013 en la rev xxxx" similar a como hago con el codigo
Pues igual, solamente debes ir guardando cada cambio en el script de la estructura. Así podrás obtener cualquier versión de cualquier fecha.
Es más, si tienes el script conjuntamente con el código, se comportará igual, como un fichero más, y podrás ver las diferencias que citas.
Responder Con Cita
  #11  
Antiguo 28-07-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
SI lo que te hace falta es poder visualmente (GUI) hacer eso, entonces busca un cliente de git. Yo uso:

https://www.sourcetreeapp.com/

Tambien hay otros clientes. Especializado en diff este es uno muy bueno:

https://www.perforce.com/product/com...and-diff-tools
__________________
El malabarista.
Responder Con Cita
  #12  
Antiguo 28-07-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Encontre esta utilidad: Open DBDiff que funciona solo con SQL Server (2005+). Es libre (GPL2) y hace su trabajo. Es facil, rapido y efectivo

Simplemente seleccionamos las 2 bases de datos (que pueden estar en dos server distintos, osea, me puedo conectar remoto) ponemos comparar y te muestra tanto en gui como en script las diferencias. Luego hasta tiene un botoncito mas que actualiza todo. Una joya.
Responder Con Cita
  #13  
Antiguo 29-07-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
El ibexpert tiene esta opción:

Creo recordar que sólo está en la versión de pago, no en la personal.
¿Cierto?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #14  
Antiguo 29-07-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Neftali Ver Mensaje
Creo recordar que sólo está en la versión de pago, no en la personal.
¿Cierto?
Yo tengo una versión que se llama "Portable" y trae esa opción. En la web de ellos veo que ya no existe esa versión.
Responder Con Cita
  #15  
Antiguo 29-07-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Yo tengo una versión que se llama "Portable" y trae esa opción. En la web de ellos veo que ya no existe esa versión.

No me suena esa versión.
¿Trae opciones de Debug (ejecutar paso a paso)?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #16  
Antiguo 29-07-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Neftali Ver Mensaje

No me suena esa versión.
¿Trae opciones de Debug (ejecutar paso a paso)?
Sí tiene esa opción. Es una versión de 2009 y aparentemente no tiene registro ni licencia extraña, es solo un ejecutable, sin nada más.

Edito: ¡Oh, wait!, tiene un logo semitransparente en el que no me había fijado antes... no sé.

Última edición por Casimiro Notevi fecha: 29-07-2016 a las 12:10:31.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Control de versiones Waldo Varios 17 12-06-2010 17:08:33
Control de versiones con servidor ftp seoane Varios 14 23-05-2008 11:06:55
Control de versiones Boo Varios 7 27-09-2006 19:13:45
Control de Versiones JorgeBec Varios 1 27-01-2005 04:49:45
Control de Versiones cone220 Varios 1 20-01-2004 19:58:01


La franja horaria es GMT +2. Ahora son las 21:18:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi