#!/usr/bin/perl
-# $Id: sqlt-diagram,v 1.1 2003-08-26 02:29:12 kycl4rk Exp $
+# -------------------------------------------------------------------
+# $Id$
+# -------------------------------------------------------------------
+# Copyright (C) 2002-2009 SQLFairy Authors
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; version 2.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA
+# -------------------------------------------------------------------
=head1 NAME
-sqlt-diagram.pl - Automatically create a diagram from a database schema
+sqlt-diagram - Automatically create a diagram from a database schema
=head1 SYNOPSIS
- ./sqlt-diagram.pl -d|--db=db_parser [options] schema.sql
+ ./sqlt-diagram -d|-f|--from|--db=db_parser [options] schema.sql
Options:
-t|--title Title to give schema
-c|--cols Number of columns
-n|--no-lines Don't draw lines
- -f|--font-size Font size ("small," "medium," "large," or "huge,"
+ --font-size Font size ("small," "medium," "large," or "huge,"
default "medium")
+ --gutter Gutter size between tables
--color Add colors
--show-fk-only Only show fields that act as primary
or foreign keys
redirect the output into a file.
The default action is to assume the presence of foreign key
-relationships defined via "REFERNCES" or "FOREIGN KEY" constraints on
+relationships defined via "REFERENCES" or "FOREIGN KEY" constraints on
the tables. If you are parsing the schema of a file that does not
have these, you will find the natural join options helpful. With
natural joins, like-named fields will be considered foreign keys.
excluded from natural joins. A more efficient method, however, might
be to simply deduce the foriegn keys from primary keys to other fields
named the same in other tables. Use the "natural-join-pk" option
-to acheive this.
+to achieve this.
=cut
use Pod::Usage;
use SQL::Translator;
-my $VERSION = (qw$Revision: 1.1 $)[-1];
-
#
# Get arguments.
#
my (
$out_file, $image_type, $db_driver, $title, $no_columns,
$no_lines, $font_size, $add_color, $debug, $show_fk_only,
- $natural_join, $join_pk_only, $skip_fields, $help
+ $gutter, $natural_join, $join_pk_only, $skip_fields, $help
);
GetOptions(
- 'd|db=s' => \$db_driver,
+ 'd|db|f|from=s' => \$db_driver,
'o|output:s' => \$out_file,
'i|image:s' => \$image_type,
't|title:s' => \$title,
'c|columns:i' => \$no_columns,
'n|no-lines' => \$no_lines,
- 'f|font-size:s' => \$font_size,
+ 'font-size:s' => \$font_size,
+ 'gutter:i' => \$gutter,
'color' => \$add_color,
'show-fk-only' => \$show_fk_only,
'natural-join' => \$natural_join,
producer_args => {
out_file => $out_file,
image_type => $image_type,
+ gutter => $gutter || 0,
title => $title,
no_columns => $no_columns,
no_lines => $no_lines,
}
}
+# -------------------------------------------------------------------
+
=pod
=head1 AUTHOR
-Ken Y. Clark E<lt>kclark@cpan.orgE<gt>
+Ken Y. Clark E<lt>kclark@cpan.orgE<gt>.
=cut