DiaSQL generando esquema SQL apartir de un diagrama DIA

DiaSQL Dump es un plugin para el DIA que desarrolle en python bajo licencia GPLv3, que te permite crear un archivos en sintaxis SQL a partir de tu diagramas de base de datos.

Actualmente se encuentra en versión Beta pero ya es completamente funcional,  puedes obtener una copia y el código desde:

DiaSQL Dump nos ayuda a generar archivos con código SQL a partir de tus diagramas de base de datos desarrollados con la herramienta DIA, generando con esto una congruencia entre el modelado de tu base de datos con su definición en SQL, de esta forma si deseas generar algún cambio en el esquema de la base de datos basta con editar el diagrama.

Ejemplo

Previamente debes tener instalado el programa DIA, esto en ubuntu o debian linux lo puedes hacer con la siguiente instrucción.

sudo apt-get install -y dia

La siguiente figura muestra el diseño de un diagrama de base de datos en DIA.

ejemplo diagrama DIA definición de una tabla.

ejemplo diagrama DIA definición de una tabla.

De la figura se puede apreciar que la tabla Personas tiene las siguientes campos:

  • id: int(11), clave primaria, no puede ser nulo.
  • rfc: varchar(20), clave única, no puede ser nulo.
  • nombre: varchar(50), NO es clave, puede ser nulo.

Una ves que realizamos el diagrama nos vamos a archivo y del damos exportar seleccionamos al opción SQL Dump(*.sql) como se muestra en la siguiente imagen:

exportando volcado SQL del diagrama DIA

exportando volcado SQL del diagrama DIA

O bien desde linea de comando con la siguiente sentencia.

#h4x0r mode
dia  -e  ejemplo1.sql   ejemplo1.dia

Donde ejemplo1.dia es nuestro diagrama dia y ejemplos.sql es el archivo que queremos exportar(-e).

El cogido SQL generado por DiaSQL Dump para este ejemplo es:

-- Created by DiaSql-Dump Version 0.01(Beta)
-- Filename: ejemplo1.sql
-- Created: 2010-08-13

-- Personas --
CREATE TABLE IF NOT EXISTS `Personas` (
	`id` int(11) PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
	`rfc` varchar(20) NOT NULL UNIQUE,
	`nombre` varchar(50)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- End SQL-Dump

Nota: esto es solo parte de la documentación que espero levantar próximamente.

Anuncios

5 thoughts on “DiaSQL generando esquema SQL apartir de un diagrama DIA

  1. Que onda amigo, chido aporte.

    No he utilizando DIA, pero bien sólo una observación, la restricción PRIMARY KEY, trae de manera implícita el NOT NULL y el UNIQUE, habrá que echarle un ojo para ver que no genera tanto código basura.

    ¿Funciona para PostgreSQL?

    • Si si me habia percatado de eso, pero la interface en el momento de diseñar la BD atomaticamente al hacerla un campo clave primaria, te genera otras opciones Que no puede ser Null, y que es única.
      ingresion de un campo ID
      O te refieres al hecho de que el plugin esta poniendo estas características de manera explicita?

      Respecto a PostgreSQL he tenido unos problemas por las relaciones. Actualmente el DIA no cuenta con una forma de especificar los tipo de dependencia(por ejemplo el borrado en cascada).

      Espero sacar una versión corregida del modelado de la BD en la siguiente versión de DIA, pero esto es un poco mas complejo, básicamente se trata de editar unos codes en c++/gtk, te mando mas info por si estas interesado.

      http://svn.gnome.org/viewvc/dia/trunk/objects/Database/

  2. Para que no genere basura o que haga un cambio solo modifiquen el archivo diasql.py en linux generalmente esta en /usr/share/dia/python solo modifiquen lo que quieren que muestre y listo, por ejemplo Latin1 por Utf8, MyISAM, etc, etc, saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s