reymont 发表于 2013-1-13 18:27:58

使用SchemaSpy生成数据库文档

当开始一个新的项目,那你不得不弄清楚项目经理设计的数据库。怎样快速的理解数据库表之间的关系呢?
这里就有一个开源的小工具 SchemaSpy 。
Java-based ,需要 JAVA5 及以上。在使用 SchemaSpy 之前,你需要安装 JAVA 和 Graphviz 。 Graphviz 工具,下载个 MSI 安装文件就可以使用。是用来生成 ER 图的
如果你喜欢命令行,可以这样使用
java -jar schemaSpy.jar -t dbType -db dbName [-s schema] -u user [-p password] -o outputDir 
 
如果你喜欢 ANT ,可以这样使用
<target name="schema" depends="check-driver" if="db.driver.present">    <java jar="schemaSpy_3.0.0.jar"      output="${report.dir}/schemaspy-out.log"      error="${report.dir}/schemaspy-error.log"      fork="true">      <arg line="-t orathin"/>      <arg line="-db ${database}"/>      <arg line="-u ${userid}"/>      <arg line="-p ${password}"/>      <arg line="-s ${schema}"/>      <arg line="-cp ${db.driver}"/>      <arg line="-host ${host}"/>      <arg line="-port ${port}"/>      <arg line="-o ${report.dir}"/>    </java></target> 
    使用 java Ant 任务调用 SchemaSpy ,解释如下:

[*]-t 为数据库类型(有效值为 mysql 、 ora 、 db2 ,等等。)
[*]-host 为托管数据库的计算机名。
[*]-port 为数据库 URL 的端口数。
[*]-u 为数据库用户名。
[*]-p 为数据库密码。
[*]-cp 为类路径(用于指示数据库驱动程序 JAR 文件的位置)。
[*]-o 为输出目录的位置。  
现在举个 MYSQL 的例子。
 
<project name="schemaSpy" basedir="."><target name="schemaSpyMysql">       <property name="reports.dir" value="${basedir}/ reports" />       <java jar="lib/schemaSpy_5.0.0.jar" output="${basedir}/output.log" error="${basedir}/error.log" fork="true">         <arg line="-t mysql" />         <arg line="-host localhost" />         <arg line="-port 3306" />         <arg line="-db test" />         <arg line="-u root" />         <arg line="-p 12346" />         <arg line="-cp lib/mysql.jar" />         <arg line="-o ${reports.dir}" />       </java>    </target></project> 
 
 
深入阅读
http://jbrugge.com/blog/2006/10/18/schemaspy-to-the-rescue/
http://schemaspy.sourceforge.net/
http://www.blogjava.net/hjh/archive/2010/05/16/321095.html
 
页: [1]
查看完整版本: 使用SchemaSpy生成数据库文档