Skip to main content

Documentar mi Base de Datos con SchemaSpy

·2 mins

Recientemente conoci la herramienta SchemaSpy para documentar Bases de Datos, generando documentación visual, detallada, pero sobretodo, muy entendible.

_config.yml

Esta entrada servirá como introducción para ver lo que podemos hacer con SchemaSpy y su uso en nuestros proyectos. Lo primero, descargar e instalar SchemaSpy, para ellos seguimos los pasos descritos en su documentación oficial.

SchemaSpy funciona con la mayoría de los motores de Base de Datos, como ser Oracle, MS-SQL, DB2, PostgreSQL, MySQL, etc; y se conecta a ellos a través de JDBC.

La forma más simple de ejecutar SchemaSpy es a través de linea de comandos, pasando como parámetros los datos para conexión a la Base de Datos que queremos documentar:

java -jar schemaspy.jar -t mssql05 -dp C:/sqljdbc4-3.0.jar -db NOMBRE_BD -host SERVIDOR -port 1433 -s dbo -u USUARIO_BD -p PASSWORD_BD -o DIRECTORIO_DE_SALIDA

Pero si queremos tener guardada la configuración utilizada para documentar la Base de Datos de uno de nuestros proyectos, es mejor utilizar un archivo de configuración normalmente denominado “schemaspy.properties”. A continuación un detalle de cómo se vé uno:

#
#java -jar .\schemaspy-6.1.0.jar -configFile schemaspy.properties
#

# database type (pgsql, mssql, ora, mysql)
schemaspy.t=pgsql
 
# path to the database JDBC driver (postgresql-42.2.14.jar, mssql-jdbc-8.2.2.jre8.jar, ojdbc6.jar, mysql-connector-java-8.0.21.jar)
schemaspy.dp=./drivers/postgresql-42.2.14.jar

schemaspy.host=127.0.0.1
schemaspy.port=5432
 
# database name
schemaspy.db=db_prueba
 
# database user
schemaspy.u=postgres
schemaspy.p=**********
 
# output folder for the generated resukt
schemaspy.o=C:/mi_documentacion
 
# database schema
schemaspy.s=public

Para utilizar este archivo como parámetro para SchemaSpy, debemos ejecutar

java -jar schemaspy.jar -configFile schemaspy.properties

SchemaSpy genera el resultado en archivos HTML, JS, CSS e imágenes (generadas con Graphviz), y todo es guardado en la carpeta de salida “schema.o”.

La documentación incluye todas las tablas, vistas, columnas, constraints, procedimientos almacenados, funciones y más detalles de cada tabla. Además se genera una representación visual del diagrama relacionales de las tablas en la Base de Datos:

_config.yml

Esta herramienta es muy util para documentar nuestra Base de Datos o para verificar la estructura y problemas de Bases de Datos que nos encontramos en nuetsros distintos proyectos.