5.0.0 - 08/16/2010
Added SQL to query view details for MySQL databases.
Implemented feature request 1600035 - Exclusion regex I don't like the inconsistency of the command line that this introduces, but there's a new -I option that takes a regular expression of tables to excludes from the analysis. This is the inverse of -i which specifies which tables to include. The two can be used together
Thanks to Erik Meitner for the suggestion.
Resolved bug 1537126 - XML output fails with binary columns
It took a while but I think I finally came up with a regular expression that'll determine if the default value is representable in XML in Unicode:
^[ -\uD7FF\uE000-\uFFFD\p{L}\p{M}\p{Z}\p{S}\p{N}\p{P}]*$
Resolved bug 2218941 - No diagrams when schema only has implied relationships
Thanks to Steven Buschman for identifying and reproducing the problem and José E. Giménez for directing me to the solution.
Resolved bug 2433403 - Fail equal token (=) in -desc option
Thanks to José E. Giménez for the patch that resolved this.
Resolved bug 2660020 - Table comments are not retrieved in SQL Server 2000
Thanks to Frank Biedermann for the SQL that implemented this.
Resolved an issue where an InvalidConfigurationException was thrown when using Sybase.
Resolved bug 2820802 - ConcurrentModificationException
This would sometimes occur while determining referential integrity-based insertion/deletion ordering with schemas that have recursive foreign key relationships.
Thanks to Joao Carlos Batalha for reporting the problem.
Resolved bug 2827876 - Table name not showing in XML Representation
Check constraints would replace table entries the generated XML.
Thanks to TomM for reporting the problem.
Implemented feature request 2828474 - Support Informix without Schemas.
Added a new -noschema option for database drivers that claim that they support schemas but really don't (e.g. older versions of Informix).
Thanks to Joao Batalha for reporting the problem.
There were scenarios where SchemaSpy had difficultly resolving the dot executable though the PATH environment variable. Added a -gv option to optionally remove the dependency on having your PATH include Graphviz's bin directory.
Resolved bug 2393049 - SchemaSpy fails to access metadata on z/OS-based DB2 systems
SchemaSpy now more fully supports DB2 on z/OS-based systems by specifying -type db2zos.
Thanks to Christian Riedel for providing the z/OS-specific configuration file.
Resolved bug 2942336 - Related table names missing from table details
Implemented feature request 2943959 - Add deletion rule details.
Now shows details about foreign key constraint deletion rules: cascade on delete, null on delete and restrict delete.
Implemented feature request 2949120 - Expose object model.
SchemaAnalyzer.analyze() now returns the gathered database metadata. This would typically be used with HTML-generation disabled. Eventually all error reporting would occur in the calling class, but that hasn't been implemented yet nor has the ability to generate no files at all.
Thanks to Dominique De Vito for the suggestion.
Added the ability to specify the SQL used to query basic details of tables and views. This same query can optionally return row counts or view definitions, possibly negating the need for additional trips to the database.
Thanks to Jason Friedman for the suggestion.
Partially implemented feature request 2712121 - Formatting SQL output.
SchemaSpy still does no real formatting the View SQL, but it now detects that the SQL is already formatted and presents it in that form. I don't know if the databases typically retain this formatting information or not (MySQL does not).
Thanks to Reiner Kräutle for the suggestion.
Added the ability to specify a custom SQL formatter via the -sqlFormatter option. This formatter must implement the SqlFormatter interface and return the SQL formatted appropriately in HTML. Implementing a "good" formatter is basically a project in itself and beyond the scope of SchemaSpy, so plug in your own if desired. Use -dp to make the specified class visible to SchemaSpy's class loader.
Now treats DB2 Materialized Query Tables (MQTs) as views per Jonas Söderström's suggestion.
Resolved bug 2996883 - Misleading warning messages when invalid regular expressions are specified.
Thanks to David Corlette for reporting the problem.
Implemented feature request 2999566 - Provide verbose details of program flow.
Added a new -logLevel option that lets you specify how verbose the logging output should be.
The levels in descending order are:
severe (highest - least detail)
warning (default)
info
config
fine
finer
finest (lowest - most detail)
Resolved bug 3026251 - Arrowtail decoration not appearing in diagrams.
There were minor changes made to the Graphviz dot language dealing with edge rendering that now require explicit settings.
Thanks to Keith Clarke for reporting the problem and researching the solution.
Implemented feature request 3021923 - Enter passwords from within SchemaSpy.
Added a new -pfp (prompt for password) option that causes SchemaSpy to prompt the user for a password. If running in a Java6 or later environment it uses the JVM-provided classes (via reflection), while with older JVMs it attempts to emulate the same behavior.
Thanks to st0w for the suggestion.
Implemented feature request 3041957 - Optionally exclude database views.
Added a new -noviews option that causes SchemaSpy exclude all views from its analysis.
Thanks to Mattias Melin for the suggestion.
On the tables tab you can now view tables and views separately as well as hide comments.
Thanks to jpummill for the idea.
The columns page with extremely large databases (e.g. 20,000 columns) was so massive that browsers were unable to render it. The new columns page has been trimmed down to help it load. There was also a performance issue where the visibility state of column comments were out of sync with the css. That resulted in the page attempting to hide 20,000+ columns on load.
Resolved bug 3041947 - NullPointerException when unable to resolve column type.
SQL Anywhere returns null for view column types, resulting in SchemaSpy to throw exceptions. Now those view columns will show a type of "unknown". Thanks to Mattias Melin for reporting the problem and researching the solution.
Added two new optional SQL queries for view comments: selectViewCommentsSql and selectViewColumnCommentsSql.
These are optional and expected to return view and view column comments when selectViewsSql, selectTableCommentsSql and selectColumnCommentsSql don't.
Thanks to David Corlette for the idea.