用SchemaSpy制作数据库结构文档

来源:互联网 发布:随身携带淘宝去异界 编辑:程序博客网 时间:2024/06/04 19:43

在包含数据库的项目管理中,数据库文档是一个不可缺少的资源,一般来说,在数据库设计阶段比较普遍使用的工具是PowerDesigner,相信在项目初始阶段,稍微有点责任心的人都会去维护它 ,但随着项目的扩大和时间的推移,会有多少项目组会投入资源去更新和维护,即便是投入了资源,又有多少能保证所维护的版本是最新和正确的呢,有些事情,依靠人来解决,似乎很不靠谱。

 

好在有许多工具可以帮助我们来维护数据库文档,比如PowerDesigner就可以反向生成ER图。

 

这里向大家推荐一下SchemaSpy,它提供了从实际数据库自动生成数据库结构的最新精确视图,其安装和使用都比较简单,而且支持目前绝大多数的数据库。

界面还是比较友好的,通过SchemaSpy可以很方便的查看各个table信息,以及各个table之间的关联关系信息。

 

下面说一下如何使用SchemaSpy

 

一。安装

SchemaSpy的安装十分简单,实际上就是一个jar文件,官方下载地址:http://schemaspy.sourceforge.net/。

 

SchemaSpy依靠Graphviz程序库来生成数据库结构的图形视图,Graphviz的安装参考:http://hanqunfeng.iteye.com/admin/blogs/869293

 

 

二。使用

可以通过命令行来使用

Java代码  收藏代码
  1. java -jar schemaSpy.jar  \  
  2. -t  orathin \  
  3. -u username \  
  4. -p password \  
  5. -o   temp \  
  6. -host  192.168.0.xxx \  
  7. -port 1521 \  
  8. -db  serverID \  
  9. -cp ojdbc14.jar  

e.g.: java -jar schemaSpy_5.0.0.jar -t orathin -db GPADEV -host 10.67.255.11 -port 1521 -u username -p XXX(pw) -o d:/db/gpadb -dp

C:\opt\oracle\instantclient_11_2\ojdbc6.jar -s TCOOK

 

也可以通过ant来使用,这里给出在ant中的任务示例:

Xml代码  收藏代码
  1. <!-- schemaspy lib路径 -->  
  2.     <property name="schemaspy.lib" location="${schemaspy.home}" />  
  3.     <!-- schemaspy报告路径 -->  
  4.     <property name="schemaspy.dir" location="${reports.dir}/schemaspy" />  
  5.   
  6. <target name="schemaspy">  
  7.         <delete dir="${schemaspy.dir}" />  
  8.         <mkdir dir="${schemaspy.dir}" />  
  9.         <java jar="${schemaspy.lib}/schemaSpy_5.0.0.jar" output="${schemaspy.dir}/out.log" error="${schemaspy.dir}/error.log" fork="true" >  
  10.             <arg line="-t=orathin"/>   <!-- 数据库类型,这里是oracle -->  
  11.             <arg line="-db=serverID"/> <!-- 数据库实例 -->  
  12.             <arg line="-u=username"/><!-- 用户名 -->             
  13.                         <arg line="-p=password"/> <!-- 密码  -->  
  14.             <arg line="-cp=${catalina.home}/common/lib/ojdbc14.jar"/> <!-- 驱动 -->  
  15.             <arg line="-host=192.168.0.xxx"/> <!-- 数据库地址 -->  
  16.             <arg line="-port=1521"/> <!-- 端口 -->  
  17.             <arg line="-o=${schemaspy.dir}"/> <!-- 文档输出目录 -->  
  18.             <arg line="-charset=UTF-8"/>   <!-- 有中文时要设置编码 -->  
  19.         </java>  
  20. </target>  

 

如果是使用oracle数据库,个人觉得OraSchemadoc(http://oraschemadoc.yarpen.cz/)更好一些,其功能更加丰富和完整,