Introducción.

SchemaSpy screenshot - All relationships

SchemaSpy screenshot - All relationships

Dando vueltas el mes pasado por los lados de SourceForge encontré esta aplicación y no había tenido tiempo de probarla hasta el día de hoy.  Para mi satisfacción resultó ser muy interesante.  Es una aplicación desarrollada en Java que genera el diagrama Entidad-Relación de una base de datos y otras cositas, como sus desarrolladores la llaman, un navegador gráfico de esquemas de metadatos de una base de datos.  Puede acceder a cualquier motor de base de datos desde que se cuente con su correspondiente driver JDBC.

Requerimientos.

Para utilizar la aplicación se requiere lo siguiente.

  1. Contar con Java5 o superior.
  2. Descargar la última distribución de SchemSpy.
  3. Obtener el driver correspondiente a su base de datos.

Para realizar la conexión con una base de datos Microsoft SQL Server recomiendo utilizar el driver de jTDS ya que el proporcionado por Microsoft me generó problemas del siguiente estilo.

Driver version is x.x.xxx.xxx
com.microsoft.sqlserver.jdbc.SQLServerException: The "variant" data type is not supported.
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
        at com.microsoft.sqlserver.jdbc.TypeInfo.init(Unknown Source)
        at com.microsoft.sqlserver.jdbc.StreamColumns.processBytes(Unknown Source)
        at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteQuery(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(Unknown Source)
        at one_con.main(one_con.java:26)

Instalación.

La instalación de la aplicación no excede el descomprimir los paquetes descargados, sin embargo su ubicación es importante.  Para esto utilicé la siguiente estructura de directorios.

  1. ~/Applications/SchemaSpy - directorio de la aplicación.
  2. ~/Applications/SchemaSpy/drivers - controladores de acceso a la base de datos.

En la carpeta [1] se ubica el JAR de la aplicación: schemaSpy_4.1.1.jar.

En la carpeta [2] se ubican los JAR de los drivers JDBC: mysql-connector-java-5.1.7-bin.jar para MySQL y jtds-1.2.2.jar para MSSQL.

Ejecución.

Para esto acostumbro a crear scripts del shell que ubico en ~/Applications, sin embargo lo importante es su contenido que puede invocarse directamente desde la línea de comando.

Para MySQL.

$ java -jar SchemaSpy/schemaSpy_4.1.1.jar -dp ~/Applications/SchemaSpy/drivers/mysql-connector-java-5.1.7-bin.jar -t mysql -host HOST -db DBNAME -u DBUSER -p DBPASS -o OUTDIR

Para MSSQL.

$ java -jar SchemaSpy/schemaSpy_4.1.1.jar -dp ~/Applications/SchemaSpy/drivers/jtds-1.2.2.jar -t mssql-jtds -host HOST -port PORT -db DBNAME -s DBSCHEMA -u DBUSER -p DBPASS -o OUTDIR

Por supuesto se deben reemplazar apropiadamente las siguientes variables.

  • HOST - servidor de base de datos.
  • PORT (requerido por MSSQL) - puerto de conexión al motor de base de datos.  El puerto por defecto de MSSQL es el 1433.
  • DBNAME - nombre de la base de datos.
  • DBSCHEMA (sólo con MSSQL) - esquema de la base de datos.  Utilizo dbo.
  • DBUSER - usuario de la base de datos.
  • DBPASS - contraseña del usuario $DBUSER.
  • OUTDIR - ubicación donde la aplicación generará los archivos resultantes.

Los comandos utilizan la sintaxis del shell de Linux, para utilizarlos desde Windows adapte las rutas según su conveniencia, recuerde modificar los slashes (/) por backslashes (\).

Nota acerca de la generación de gráficos.

Para que se generen correctamente los gráficos de los diagramas Entidad-Relación es necesario que se cuente previamente con la librería Graphviz.  Para instalar esta librería desde Ubuntu Linux sólo es necesario ejecutar el siguiente comando.

$ sudo apt-get install graphviz

Conclusiones.

Muy intersante esta aplicación, me gustó bastante.  Genera una buena documentación de la base de datos en formato HTML con varias secciones que se pueden navegar entre ellas.  Incluye varias perspectivas de la misma información que facilita su documentación.  Incluso siendo una presentación local, incluye JQuery para mejorar la usabilidad de los reportes.

Enlaces.

VN:F [1.9.3_1094]
Rating: +1 (from 1 vote)
Generando diagramas entidad-relación con SchemaSpy, 100% based on 1 rating

No hay artículos relacionados.