Necesitamos un par de cosas para proceder:
- Schemaspy, que lo pueden descargar de: http://schemaspy.sourceforge.net/
- El driver jdbc para mysql (en este caso, porque la aplicación usa ese motor), que lo pueden obtener de: http://dev.mysql.com/downloads/connector/j/
- Y hay que tener también el paquete graphviz, necesario para la generación de las imágenes que describen las tablas de la BD.
juan@moon:~/dtc$ ls
schemaSpy_5.0.0.jar mysql-connector-java-5.1.20.tar.gz
juan@moon:~/dtc$
Descomprimimos el connector,
tar -xvf mysql-connector-java-5.1.20.tar.gz
Hacemos un backup de la base (Just In Case):
mysqldump -u root -p -h 127.0.0.1 --databases dtc > dtc.sql
Ahora tenemos:
juan@moon:~/dtc$ ls
mysql-connector-java-5.1.20 schemaSpy_5.0.0.jar
dtc.sql mysql-connector-java-5.1.20.tar.gz
juan@moon:~/dtc$
Una vez tomadas las precauciones necesarias, lanzamos schemaspy:
juan@moon:~/dtc$ java -jar schemaSpy_5.0.0.jar -t mysql -db dtc -host 127.0.0.1 -u root -p ElPassword -dp mysql-connector-java-5.1.20/mysql-connector-java-5.1.20-bin.jar -o der_dtc
Como schemaspy se trata de una aplicación java la lanzamos con "java -jar schemaSpy_5.0.0.jar", el resto son parámetros de schemaspy, que significan:
-t mysql: indicamos que se trata de un motor MySQL.
-db dtc: indicamos que vamos a trabajar sobre la base de datos llamada dtc.
-host 127.0.0.1: indicamos el host donde escucha la BD.
-u root: indicamos el usuario con cuál vamos a conectarnos.
-p ElPassword: indicamos el password para autenticarnos (por lo que vi, esta es la única manera de pasar el password).
-dp mysql.../mysql....jar: indicamos el path al driver jdbc a utilizar.
-o det_dtc: el directorio donde queremos que schemaspy nos escriba toda la salida.
NOTA: existe una opción "-port puerto", que se supone se usa para especificar el puerto donde se encuentra la BD, en caso de que no sea el standard. Hago la nota, porque a mi no me funcionó :P.
Ahora abrimos el resultado:
juan@moon:~/dtc$ firefox der_dtc/index.html &
Y nos encontramos con toda la información que schemaspy pudo recolectar de nuestra BD.
La información que mas me interesaba debería estar en la tab de "Relationships", pero lamentablemente las tablas no tienen integridad referencial, por lo tanto schemaspy no es capaz de detectar las dependencias entre tablas, y por eso no dibuja el DER. Pero me sirve la tab "Utility tables", donde se listan todas las tablas, y uno puede darse una idea de las relaciones por el nombre de los campos y armar consultas para obtener lo que hace falta :D.