SchemaCrawler Changelog

New in version 12.06.03

March 28th, 2015
  • Fixing links on website.

New in version 12.06.02 (March 27th, 2015)

  • Fixing links on website.

New in version 12.06.01 (March 25th, 2015)

  • Hiding empty tables, and links in HTML.

New in version 12.05.02 (March 18th, 2015)

  • Better identification of weak associations.

New in version 12.05.01 (March 15th, 2015)

  • Better identification of weak associations.

New in version 12.04.02 (February 11th, 2015)

  • Fix Oracle connection.

New in version 12.03.02 (January 30th, 2015)

  • Better connection arguments.

New in version 10.08.02 (January 4th, 2014)

  • Updated copyright notices.
  • Fixed javadocs, using standard Java 7 stylesheet.

New in version 10.08.01 (November 21st, 2013)

  • Trim all table names, to allow Informix to match correctly.

New in version 10.8 (November 12th, 2013)

  • Providing richer information about table constraints, including details of constrained columns.

New in version 10.7 (November 7th, 2013)

  • Providing richer information about table constraints. Renaming check constraints to table constraints.

New in version 10.6 (October 31st, 2013)

  • Changed InclusionRule to an interface, to allow custom implementations.
  • Fixed lack of support for type maps by the Sybase IQ database driver.

New in version 10.4 (July 30th, 2013)

  • Fixed view definitions for PostgreSQL.
  • Fixed retrieving index metadata for tables, working around PostgreSQL bugs #3480 #6253.
  • Added retrieving index definitions for PostgreSQL and Oracle.
  • Added retrieving view definitions for Apache Derby.

New in version 10.1 (April 23rd, 2013)

  • SchemaCrawler support for J2SE 7 only, since previous Java versions are deprecated. Converted the codebase over to use J2SE 7 constructs.
  • New command-line option, -only-matching, to show only matching tables, and does not show foreign keys that reference other non-matching tables. Modeled after the analogous grep option.
  • New option to set input encoding format for script files and templates. The option is "schemacrawler.encoding.input" in the SchemaCrawler properties file.
  • Renamed command-line option -table_types to -tabletypes.

New in version 9.6 (March 9th, 2013)

  • Fixed diagram generation on Linux when no GraphViz options are supplied.
  • Added trigger names to JSON output by default. Added new configuration variable, schemacrawler.format.hide_trigger_names to suppress trigger names in all output formats.
  • Added new -portablenames command-line option, to allow for easy comparison between databases, by hiding foreign key names, constraint names, trigger names, index and primary key names, and not showing the fully-qualified table name.

New in version 9.5 (February 26th, 2013)

  • Updated HTML generation to have captions consistently for all tables. Numeric data is right-aligned in HTML, and correctly reported in JSON as well. These changes affect other output formats as well.
  • Updated Oracle database connection URL to the new syntax.

New in version 9.4 (February 2nd, 2013)

  • Fix for honoring text formatting options in GraphViz dot output.

New in version 9.3.2 (November 19th, 2012)

  • Fix for honoring sort options on JSON output.

New in version 9.3.1 (November 5th, 2012)

  • Fix for generating diagrams on Unix.

New in version 9.3 (November 1st, 2012)

  • Weak associations are returned sorted.
  • Added ability to specify additional command line options for GraphViz, using either Java system properties, or environmental variables.

New in version 9.2 (October 22nd, 2012)

  • Fixed Windows script, sc.cmd.
  • Better support for sqlite, including the latest database driver, reporting of foreign keys, and view definitions.
  • Updated the jTDS JDBC driver to 1.2.6, for Microsoft SQL Server.
  • Deprecated the getType() method on database objects.

New in version 9.1 (October 1st, 2012)

  • Added examples for Groovy, Ruby and Python scripting.
  • SchemaCrawler is now bundled as an OSGi jar.

New in version 9.0 (September 11th, 2012)

  • The API has changed from 8.x versions. All API calls return collections instead of arrays. Schemas are not containers, but tags for database objects. Tables and routines (stored procedures and functions) are available directly on the database, and there are new finders to search by schema.
  • Support for database functions has been added. All references to stored procedures in the code and documentation now refer to routines. Stored procedures and functions are treated in the same way, as routines.
  • SchemaCrawler now allows queries to be specified on the command-line. If a command is not recognized, or is not a named query, it is executed as if it is a query.
  • The output format includes trgger definitions as part of the schema, instead of as the detailed schema output.
  • Database connections have to be specified on the command-line, by providing the driver class name and URL. Database connections can no longer be defined in properties files.
  • There are new command-line options. -V, --version will print the SchemaCrawler version and exit. There are shorter and more standard (Unix-like) synonyms -u (for -user), -c (for -command), and -o (for -output). The -procedures switch has been renamed -routines.

New in version 8.17 (July 14th, 2012)

  • The HTML output format outputs valid HTML5 and CSS3, as valid XML.
  • JSON output supports all of the formatting options that the other text formats support.
  • A new method, getShortName(), get the unqualified name for columns and other dependent objects.
  • A new text format option, "schemacrawler.format.show_unqualified_names", shows the unqualified name in text output, for easier comparisons across different catalogs and schemas.

New in version 8.15 (May 7th, 2012)

  • Added distribution for Sybase IQ.

New in version 8.11 (February 19th, 2012)

  • Added ability to configure SchemaCrawler linters.
  • Added a new lint for useless surrogate keys.
  • Added ability to tag tables and columns with additional metadata attributes from SQL queries.

New in version 8.10 (January 27th, 2012)

  • Changed copyright notice on source code.
  • Added ability to use configuration from bundled versions of SchemaCrawler, so that triggers, and extended metadata are available.
  • Started to add teh ability to configure SchemaCrawler linters.

New in version 8.9 (December 12th, 2011)

  • add Added SchemaCrawler Lint as a separate report, with ability to add custom linters. add Added additional SchemaCrawler linters.
  • add Added ability to extend SchemaCrawler with custom command.
  • fix Fixed issue with constraints with the same name in different schemas.

New in version 8.8 (October 18th, 2011)

  • Added JSON and TSV output formats. Sualeh Fatehi
  • Moved SchemaCrawler Maven Plugin into a new SourceForge project.

New in version 8.7 (September 5th, 2011)

  • New INFORMATION_SCHEMA views to provide Oracle metadata details. Sualeh Fatehi
  • update Update database driver versions. Sualeh Fatehi
  • fix Fixed bug #3392557 - NullPointer exception thrown when columns excluded in Oracle. Sualeh Fatehi
  • fix Fixed bug #3392976 - Exception retrieving tables: Could not retrieve indices for Oracle schemas with $ in the name. Sualeh Fatehi
  • fix Fixed bug #3401752 - Attempt to locate database 'dbo' by name failed.

New in version 8.6 (May 9th, 2011)

  • New feature to chain, or run multiple SchemaCrawler commands using JavaScript.

New in version 8.5.1 (February 8th, 2011)

  • Changed copyright to 2011. Sualeh Fatehi
  • Fixed grep. Sualeh Fatehi
  • Removed option to provide index info SQL. Sualeh Fatehi
  • Better unit test coverage. Restructuring of Eclipse projects. Sualeh Fatehi

New in version 8.5 (February 3rd, 2011)

  • Changed copyright to 2011. Sualeh Fatehi
  • Fixed grep. Sualeh Fatehi
  • Removed option to provide index info SQL. Sualeh Fatehi
  • Better unit test coverage. Restructuring of Eclipse projects.

New in version 8.4 (December 27th, 2010)

  • SchemaCrawler commands have been simplified. For example, "list_objects" is now simply "list".
  • -procedures= is used as a command line switch instead of -show_stored_procedures.
  • Issues with obtaining PostgreSQL tables and Derby foreign keys are fixed.
  • -infolevel is now a required command line argument.

New in version 8.3.2 (August 2nd, 2010)

  • Verbose output now contains column remarks along with table remarks.
  • A bug with graphs that have foreign keys to tables not included in the grep has been fixed.

New in version 8.3.1 (July 19th, 2010)

  • A new command line option, -urlx, passes additional JDBC URL properties to bundled distributions.
  • Details on the "main" command line is in the how-to section of the official website.

New in version 7.6 (December 4th, 2009)

  • Fixed specification of Oracle SID using the -database command line switch, as well as spcification of port number.
  • Fixed shell script classpath.

New in version 7.3.1 (September 26th, 2009)

  • Enhancement to the JavaSqlType class, to contain the SQL type group. New lookup by data-type name added to JavaSqlTypesUtility.
  • Removed method, getTypeClass(), from ColumnDataType.
  • Removed deprecated methods for grouping SQL data types (such as isReal()) from the ColumnDataType class.

New in version 7.2 (August 27th, 2009)

  • Better modeling of privileges and grants.
  • Bug fix for obtaining indexes and foreign keys with the Oracle driver.
  • Added natural sort order for tables, based on the foreign keys, and corresponding new configuration option, and command-line switch, -sorttables. Also added new API methods to get child and parent tables, based on the foreign keys.
  • Handle null schemas for databases that do not support schemas, such as MySQL.
  • Allow data dumps when tables contain binary objects, by fixing the SELECT sort order.

New in version 7.2 (August 27th, 2009)

  • Better modeling of privileges and grants.
  • Bug fix for obtaining indexes and foreign keys with the Oracle driver.
  • Added natural sort order for tables, based on the foreign keys, and corresponding new configuration option, and command-line switch, -sorttables. Also added new API methods to get child and parent tables, based on the foreign keys.
  • Handle null schemas for databases that do not support schemas, such as MySQL.
  • Allow data dumps when tables contain binary objects, by fixing the SELECT sort order.

New in version 7.1 (August 13th, 2009)

  • This release makes efficient use of database connections and plays well with pooled connections.
  • There are better log messages, including for configuration, for when a database connection is opened or closed.
  • There are several performance enhancements, improving the speed of retrieval of the schema.

New in version 6.4 (May 11th, 2009)

  • The 6.4 release adds a pre-packaged SchemaCrawler for SQLite. There is also an improved algorithm to find weak associations, and a new command-line switch to sort columns alphabetically.

New in version 6.3 (May 7th, 2009)

  • SchemaCrawler grep functionality is built into the SchemaCrawler command-line. This means that all of the SchemaCrawler commands, including graphing, can use filtering and grep options. The command-line options help has been re-written. If no commands are specified, defaults to standard_schema (a new command), which provides the most commonly needed details of the schema. SchemaCrawler produces Graphviz DOT files to generate schema diagrams, as one of its native output formats.

New in version 6.2 (April 9th, 2009)

  • A new feature to infer weak associations between tables, even if there is no foreign key. Ruby on Rails table schemes are supported, as well as other simple relationships. Table name prefixes are automatically detected.
  • Database diagram support using Graphviz. Primary keys are indicated in a darker color than other columns. Foreign keys are indicated with arrow connectors. Weak associations between tables are shown in dashed lines. Multiple output formats are supported. Support for Jung is dropped.

New in version 6.0.2 (November 29th, 2008)

  • This release fixes an issue with MySQL schemas.

New in version 6.0.1 (November 7th, 2008)

  • Bugfixes for recognizing -schemapattern on the command line, and data types with the Oracle driver.

New in version 6.0 (October 17th, 2008)

  • This release introduces a number of API changes and new features.
  • Notable among these is full support for multiple schemata in a catalog.
  • The SchemaCrawler API returns a catalog as the top level object, which contains schemata.
  • Another change is that SchemaInfoLevel is an option, not a CrawlHandler property, to allow for better separation of concerns.
  • Finally, SchemaCrawler has support for JavaScript scripting with J2SE 6 and above.