Projects / SchemaSpy


SchemaSpy analyzes database metadata to reverse engineer dynamic Entity Relationship (ER) diagrams. It works with just about any JDBC-compliant database and can identify Ruby on Rails style databases, as well as other implied relationships.

Operating Systems

Recent releases

  •  16 Aug 2010 23:51

    Release Notes: SQL was added for querying view details for MySQL databases. On the tables tab, you can now view tables and views separately as well as hide comments. The columns page has been trimmed down to help resolve loading issues on large (e.g. 20,000 table) schemas. A -gv option was added to no longer require finding Graphviz on the path. Hooks were added to allow for custom formatting of view SQL. DB2 Materialized Query Tables (MQTs) are treated as views. A new option was added to prompt for the password, so it doesn't appear on the command line. Many additional bugs were fixed.

    •  20 Oct 2008 18:14

      Release Notes: This release resolves issues with the extends directive as well as null IDs on DB2 views.

      •  17 Oct 2008 23:01

        Release Notes: This release can fully evaluate Ruby on Rails databases that associate foreign keys to primary tables/keys with a translation of singular to plural form. It resolves a bug where SchemaSpy was using incorrect entity relationship diagram notation. It adds support for MS SQL Server 2005 with jTDS driver, including column comment retrieval for all of the MS SQL databases. You can now specify database connection properties on the command line. There is a new -sso option to support single sign-on databases.

        •  22 Sep 2008 23:41

          Release Notes: Many additional metadata settings can now be specified via XML. The compact view of the relationships page now hides non-PK/non-indexed columns to reduce clutter and clarify the relationships. jQuery is now used for DOM manipulation. Support has been added for Derby (JavaDB) databases, both embedded and network, along with SQL Server with the jTDS driver, SQL Server 2005, and MaxDB. A new option for evaluating multiples with databases like MySQL where a database isn't composed of multiple schemas. Significantly improved performance of generation of entity-relationship diagrams. Many additional bugs were fixed.

          •  18 Dec 2006 17:33

            Release Notes: This is a bugfix release primarily intended to address the Graphviz 2.9+ changes that broke SchemaSpy. It fixes bug 1602135 (an exception using dot version 2.9), bug 1571711 (failure to use a precompiled version of dot on Mac OS X), and bug 1597609 (quoting and Sybase ASE).

            Recent comments

            19 May 2013 21:28 mazal

            brilliant.. ty.

            16 Aug 2012 04:33 winnerdood

            Love SchemaSpy. It's amazingly easy to configure and made it work within 30 minutes with development and production db. Does the job, it meant for, very well...Hats off. Keep the open source spirit alive...

            13 Oct 2011 23:03 parasanger

            I use the project several times a day. We have a multt TB SQL Server db w/1700 tables and over a hundred views. Its a beast, evolved over 10 years, no DTD, etc. And I'm new. Its the only sane way to explore the schema and has been a life saver coming up to speed here. Salut!

            11 Mar 2011 00:58 reinderien

            An excellent tool and one that I wish I'd found years earlier. I wrote a batch file to invoke it for a PostgreSQL schema provided on the command line:


            21 Aug 2010 02:29 cesium5500

            I got it to work under Ubuntu 9.10 with postgresql 8.4, I need to create this element : information_schema._pg_keypositions()

            I found the solution here :

            I need this file too : postgresql-8.0-312.jdbc3.jar (available here :

            Thanks for this great piece of software



            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.