SchemaCrawler has support for most databases that have a JDBC driver.
Ranked in these QuestionsQuestion Ranking
Pro Many options for output formats in addition to graphical
The text-based output serves for database documentation, and is designed to be diff-ed against other database schemas.
Pro Extensive and detailed documentation online
Including visuals of the results of command-line option usage.
Con Does not work with schema dumpfiles
SchemaCrawler has no methods for dealing with when you only have a schema generated via something like (mysqldump --no-data [options] >schema-only_dump.sql) , and do not currently have access to a live database to connect with.