jueves, 23 de febrero de 2012

SchemaSpy creando un diccionario de datos

SchemaSpy (LGPL) Es una herramienta para la linea de ordenes y su sintaxis básica es:

java -jar schemaSpy_3.1.1.jar \
-t mysql \
-u root \
-o db-schema-report \
-host localhost \
-db bookstore \
-s bookstore \
-cp mysql-connector-java-5.0.5.jar \

Los pasos para generar el diccionario de datos son:

1. Descargar SchemaSpy y desempaquetar.

2. Descarga de: Dot ejecutable de Graphviz http://www.graphviz.org/ (asegurarse que el dot ejecutable esté en el PATH)

Otros usos de Graphviz: http://silviajqc.blogspot.com/2011/10/graphviz-ubuntu.html
linux--------
which dot: para saber en donde esta ubicado( la ruta) del archivo
--------------
3. Java Runtime Environment 5 or 6 (JRE 1.5 or JRE 1.6) https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html

4. Descargar SchemaSpyGUI : http://sourceforge.net/projects/schemaspygui/files/latest/download

5. Ejecutar SchemaSpyGUI , y modificar los parámetros dependiendo de tu base de datos.


Ubicarse en la carpeta:
/home/silvia/Descargas/schemaSpyGUI20090302

y ejecutar el software: ./schemaSpyGUI.sh

6. Modificar los datos de la base de datos, driver y ubicación del schemaGUI.jar















7. Modificar la salida :
















8. Dar clic en start SchemaSpy: se abre otra ventana, copiar el código generado de salida y modificarlo:

Salida:

This is the command (password not displayed!) SchemaSpyGUI has generated:
java -jar /home/silvia/Descargas/schemaSpyGUI20090302/schemaSpyGUI.jar -dp /home/silvia/Escritorio/postgresql-8.4-702.jdbc4.jar -t pgsql -db
finanzas -all -host localhost -port 5432 -u marko -o /home/silvia/Escritorio/ -hq


/home/silvia/Escritorio/: Ruta de salida
marko: usuario de la base de datos
finanzas: base de datos

Modificar la ruta del schemaSpy.jar descarga 1 de este documento, y agregar contraseña:

silvia: contraseña

java -jar schemaSpy_5.0.0.jar -dp /home/silvia/Escritorio/SilviaProyectoDeGrado/Instaladores/DriverPostgres/postgresql-8.4-702.jdbc4.jar -t pgsql -db finanzas -all -host localhost -p silvia -port 5432 -u marko -o /home/silvia/Escritorio/ -hq

9. Ejecutar el codigo modificado, desde la ruta:

root@silvia-desktop:/home/silvia/Descargas#

10. Verificar creación del archivo : index.xml :) listo!!

El resultado:





Recordar: 
At the end of installation U need to edit (or create new) batch file to run against your databases, the default file is located at the root and called "run.bat", for Oracle I uses:
java -jar "[path]\schemaSpy_5.0.0.jar" -dp "[path]\ojdbc6.jar" -t orathin -db [SID] -host [IP] -port 1521 -u [admin_user] -p [passwd] -o "[output_path]" -schemas [ora_user1,ora_user2,ora_user3,...]

Recordar:

  • java -jar schemaSpy_4.1.1.jar -dp "C:\SchemaSpy\ojdbc14.jar" -t orathin -db FOOBAR -host foo-orc1-1 -port 1521 -u foo -p foo -o "C:\SchemaSpy" -hq 


Referencias:

http://buzznt.blogspot.com/2012/02/schemaspy.html


http://rm-rf-root.blogspot.com/2010/12/schemaspy-documentando-tu-base-de-datos.htmlhttp://www.joachim-uhl.de/projekte/schemaspygui/

http://www.joachim-uhl.de/projekte/schemaspygui/

1 comentario:

Anónimo dijo...

Recordar que se necesita la biblioteca ojdbc14 para bases de datos oracle 9 en adelante, saldra el siguiente error en caso contrario:

C:\graphviz-2.36\release\bin>java -jar "C:\schemaSpy_5.0.0.jar" -dp "C:\classes1
2.zip" -t orathin -db desa -host 108.10.0.49 -p qh729upromo678 -port 1531 -u UPR
OMOCLTS -schemas PROMOCLTS -o "C:\diccionario1" -hq
Analyzing schemas:
PROMOCLTS
Analyzing PROMOCLTS
Using database properties:
[C:\schemaSpy_5.0.0.jar]/net/sourceforge/schemaspy/dbTypes/orathin.properties
Gathering schema details...java.sql.SQLException: ORA-00600: internal error code
, arguments: [ttcgcshnd-1], [0], [], [], [], [], [], []

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:169)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:889)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.jav
a:1826)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:2015)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
edStatement.java:395)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePrepare
dStatement.java:339)
aFailed to execute this process (rc 1): java -Doneofmultipleschemas=true
-jar C:\schemaSpy_5.0.0.jar -ahic -dp "C:\classes12.zip" -css "schemaSpy.css" -
charset "ISO-8859-1" -font "Helvetica" -fontsize "11" -t "orathin" -renderer ":g
d" -p "qh729upromo678" -u "UPROMOCLTS" -db "desa" -host "108.10.0.49" -port "153
1" -loglevel "warning" -sqlFormatter "net.sourceforge.schemaspy.view.DefaultSqlF
ormatter" -i ".*" -I "" -x "[^.]" -X "[^.]" -dbthreads "1" -maxdet "300" -s PROM
OCLTS -o C:\diccionario1\PROMOCLTS
t oracle.jdbc.OracleD
C:\graphviz-2.36\release\bin>java -jar "C:\schemaSpy_5.0.0.jar" -dp "C:\classes1
2.zip" -t orathin -db desa -s PROMOCLTS -host 108.10.0.49 -p qh729upromo678 -por
t 1531 -u UPROMOCLTS -o "C:\diccionario1" -hq
Using database properties:
[C:\schemaSpy_5.0.0.jar]/net/sourceforge/schemaspy/dbTypes/orathin.properties
Gathering schema details...java.sql.SQLException: ORA-00600: internal error code
, arguments: [ttcgcshnd-1], [0], [], [], [], [], [], []

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:169)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:889)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.jav
a:1826)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:2015)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
edStatement.java:395)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePrepare
dStatement.java:339)
at oracle.jdbc.OracleDatabaseMetaData.getTables(OracleDatabaseMetaData.j
ava:2274)
at net.sourceforge.schemaspy.model.Database.getBasicTableMeta(Database.j
ava:385)
at net.sourceforge.schemaspy.model.Database.initTables(Database.java:232
)
at net.sourceforge.schemaspy.model.Database.(Database.java:71)
at net.sourceforge.schemaspy.SchemaAnalyzer.analyze(SchemaAnalyzer.java:
211)
at net.sourceforge.schemaspy.Main.main(Main.java:42)