SchemaCrawler is a Java API which makes working with database metadata as easy as working with ordinary Java objects. It is also a database schema discovery and comprehension and schema documentation tool. You can search for database schema objects using regular expressions, output the schema and data in a readable text format, and find potential design issues with lint . The output is designed to be diff-ed against other database schemas. SchemaCrawler supports almost any database which has a JDBC driver, but for convenience is bundled with drivers for some commonly-used RDBMS systems. SchemaCrawler works with any operating system which supports Java.
| Tags | Database API Software Development Quality Assurance |
|---|---|
| Licenses | LGPL |
| Operating Systems | OS Independent |
| Implementation | Java |
Recent releases


Release Notes: SchemaCrawler now supports J2SE 7 only, since previous Java versions are deprecated. A new commandline option, modeled after the analogous grep option -only-matching, shows only matching tables, and does not show foreign keys which reference other non-matching tables. A new option "schemacrawler.encoding.input" can be set in the SchemaCrawler properties file to specify the input encoding format for script files and templates. The command-line option -table_types is renamed to -tabletypes.


Release Notes: There is a 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. Diagram generation on Linux works even when no GraphViz options are supplied. Trigger names show in the JSON output by default. A new configuration variable, schemacrawler.format.hide_trigger_names, suppresses trigger names in all output formats.


Release Notes: HTML generation has captions consistently for all tables, and numeric data is right-aligned. Numeric data is correctly reported in JSON also. These changes affect other output formats as well. The Oracle database connection URL uses the new syntax.


Release Notes: Text formatting options are now honored in GraphViz dot output.


Release Notes: JSON output now honors sorting options for table columns, foreign keys, indexes, and routine parameters.