lunes, noviembre 13, 2006

Obtener SQL a partir de diagramas DIA

Hace bastante tiempo que vengo buscando algún set de herramientas CASE para trabajar tranquilo pero siempre que comienzo la búsqueda me encuentro con lo mismo: pocas herramientas en el mundillo libre.

Y habiendo asistido a una charla en la CaFeConf 2006 dictada por Christian Kuroki me encuentro con que esto no es nada nuevo, y que muchos tenemos el mismo problema. El optó por Umbrello y un script de su autoría denominado umbrello2sql, que aún no he revisado.

En mi caso, de todas las que revisé para edición de Diagramas de Entidad Relación (DER), me quedé con DIA, y aunque no tiene un conjunto de plantillas nativo para este tipo de diagramas, los mismos pueden ser "generados" utilizando la plantilla de componentes para diagramas de clase. En realidad, lo que uno puede modelar no es en esencia un DER sino un Diagrama de Estructura de Datos (DED) que es algo un poco distinto.

Estos diagramas pueden ser exportados a sentencias SQL con el script tedia2sql. Uno genera las entidades siguiendo las instrucciones de la Guía de utilización de tedia2sql, y lo que obtiene despues de pasar el diagrama por el script es un archivo con las sentencias SQL de definición de la base de datos.

Yo soy un poco quisquilloso con el SQL, me gusta que esté de determinada forma, con todo explícito, etc, etc... y tedia no generaba algo que realmente me satisfaga. Así que las opciones eran dos:
  1. Editar tedia2sql para que genere en el SQL las cosas que me interesan.
  2. Programar un nuevo generador de código, hecho a medida de las necesidades.
Bien, la opción 1 la descarté porque tedia está programado en perl, y ustedes saben que perl no es de lo más amigable para leer código. Por eso opté por la 2, hacer el programita a mano.

Además como estaba tratando de iniciarme con python, decidí que sería interesante empezar el entrenamiento con un proyecto concreto, y fue así que surgió maudia2sql. Por supuesto que al ser un script hecho por un novato, tiene 2^100 fallas y cosas que mejorar, pero para eso están ustedes, jejeje...

Bueno acá está el código por si les interesa.

Download: dia2sql-1.07.zip <- nueva version

Uso: python dia2sql.py [-mysql4] [-d] [-h] archivo.dia

-h Esta ayuda
-mysql4 Generar SQL para MySQL 4.x
-d Generar sentencias para eliminar el esquema anterior.

Actualización: Debido a problemas con el hosting, encontrarán dia2sql.zip en otro servidor.

No hay comentarios.: