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.


home about screenshots requirements


tour tutorials README CHANGES man page


Perl code



Perl 5.005 or greater and the following CPAN modules

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.