Schemaball is an SQL database schema viewer. It requires Perl and a few modules, such as GD and optionally Math::Bezier and SQL::Translator. Schemaball creates flexible visualizations of database schemas. Schemas may be read from an SQL schema dump, flat file or live database.
Perl 5.005 or greater and the following CPAN modules
- GD compiled with True Type font support
- Math::Bezier, if you would like to use Bezier curves to draw your table links
- SQL::Translator, if you would like to parse SQL schema dumps
Generic SQL database support
You will need access to a SQL database and permission to list tables and table fields for the database you wish to generate a schema ball. You'll also need the appropriate DBI driver for your database. Schemaball's configuration file stores the SQL commands to poll the database structure. You can adjust these to make Schemaball compatible with your database.
Shemaball was designed originally for MySQL and works with MySQL out of the box. While InnoDB tables support foreign keys
(as of Mysql 3.23.44), MyISAM tables do not (as of 4.0). Therefore, Schemaball can identify foreign keys using CONSTRAINT table options, by regular expressions applied to participating tables, or by reading constraints from a file.
True Type Fonts
Your version of GD must be compiled with support for True Type fonts. I use the freetype library, which GD supports. I've included a couple of nice bitmapped true type fonts in the distribution. These fonts are particularly suited to creating small text. You can find more bitmapped fonts at DaFont.