SQL::Translator::ProduUser:Contributed PSQL::Translator::Producer::GraphViz(3)NAMESQL::Translator::Producer::GraphViz - GraphViz producer for
SQL::Translator
SYNOPSIS
use SQL::Translator;
my $trans = SQL::Translator->new(
from => 'MySQL', # or your db of choice
to => 'GraphViz',
producer_args => {
out_file => 'schema.png',
bgcolor => 'lightgoldenrodyellow',
show_constraints => 1,
show_datatypes => 1,
show_sizes => 1
}
) or die SQL::Translator->error;
$trans->translate or die $trans->error;
DESCRIPTION
Creates a graph of a schema using the amazing graphviz (see
http://www.graphviz.org/) application (via the GraphViz module). It's
nifty--you should try it!
PRODUCER ARGS
All GraphViz constructor attributes are accepted and passed through to
"new" in GraphViz. The following defaults are assumed for some
attributes:
layout => 'dot',
overlap => 'false',
node => {
shape => 'record',
style => 'filled',
fillcolor => 'white',
},
# in inches
width => 8.5,
height => 11,
See the documentation of "new" in GraphViz for more info on these and
other attributes.
In addition this producer accepts the following arguments:
· skip_tables
An arrayref or a comma-separated list of table names that should be
skipped. Note that a skipped table node may still appear if another
table has foreign key constraints pointing to the skipped table. If
this happens no table field/index information will be included.
· skip_tables_like
An arrayref or a comma-separated list of regular expressions
matching table names that should be skipped.
· cluster
Clustering of tables allows you to group and box tables according
to function or domain or whatever criteria you choose. The syntax
for clustering tables is:
cluster => 'cluster1=table1,table2;cluster2=table3,table4'
Or pass it as an arrayref like so:
cluster => [ 'cluster1=table1,table2', 'cluster2=table3,table4' ]
Or like so:
cluster => [
{ name => 'cluster1', tables => [ 'table1', 'table2' ] },
{ name => 'cluster2', tables => [ 'table3', 'table4' ] },
]
· out_file
The name of the file where the resulting GraphViz output will be
written. Alternatively an open filehandle can be supplied. If
undefined (the default) - the result is returned as a string.
· output_type (DEFAULT: 'png')
This determines which output method will be invoked to generate the
graph: "png" translates to "as_png", "ps" to "as_ps" and so on.
· fontname
This sets the global font name (or full path to font file) for
node, edge, and graph labels
· fontsize
This sets the global font size for node and edge labels (note that
arbitrarily large sizes may be ignored due to page size or graph
size constraints)
· show_fields (DEFAULT: true)
If set to a true value, the names of the colums in a table will be
displayed in each table's node
· show_fk_only
If set to a true value, only columns which are foreign keys will be
displayed in each table's node
· show_datatypes
If set to a true value, the datatype of each column will be
displayed next to each column's name; this option will have no
effect if the value of "show_fields" is set to false
· friendly_ints
If set to a true value, each integer type field will be displayed
as a tinyint, smallint, integer or bigint depending on the field's
associated size parameter. This only applies for the "integer" type
(and not the "int" type, which is always assumed to be a 32-bit
integer); this option will have no effect if the value of
"show_fields" is set to false
· friendly_ints_extended
If set to a true value, the friendly ints displayed will take into
account the non-standard types, 'tinyint' and 'mediumint' (which,
as far as I am aware, is only implemented in MySQL)
· show_sizes
If set to a true value, the size (in bytes) of each CHAR and
VARCHAR column will be displayed in parentheses next to the
column's name; this option will have no effect if the value of
"show_fields" is set to false
· show_constraints
If set to a true value, a field's constraints (i.e., its primary-
key-ness, its foreign-key-ness and/or its uniqueness) will appear
as a comma-separated list in brackets next to the field's name;
this option will have no effect if the value of "show_fields" is
set to false
· show_indexes
If set to a true value, each record will also show the indexes set
on each table. It describes the index types along with which
columns are included in the index.
· show_index_names (DEFAULT: true)
If "show_indexes" is set to a true value, then the value of this
parameter determines whether or not to print names of indexes. if
"show_index_names" is false, then a list of indexed columns will
appear below the field list. Otherwise, it will be a list prefixed
with the name of each index.
· natural_join
If set to a true value, "make_natural_joins" in
SQL::Translator::Schema will be called before generating the graph.
· join_pk_only
The value of this option will be passed as the value of the like-
named argument to "make_natural_joins" in SQL::Translator::Schema;
implies "natural_join => 1"
· skip_fields
The value of this option will be passed as the value of the like-
named argument to "make_natural_joins" in SQL::Translator::Schema;
implies "natural_join => 1"
DEPRECATED ARGS
· node_shape
Deprecated, use node => { shape => ... } instead
· add_color
Deprecated, use bgcolor => 'lightgoldenrodyellow' instead
If set to a true value, the graphic will have a background color of
'lightgoldenrodyellow'; otherwise the default white background will
be used
· nodeattrs
Deprecated, use node => { ... } instead
· edgeattrs
Deprecated, use edge => { ... } instead
· graphattrs
Deprecated, use graph => { ... } instead
AUTHOR
Ken Youens-Clark <kclark@cpan.org>
Jonathan Yu <frequency@cpan.org>
SEE ALSO
SQL::Translator, GraphViz
perl v5.14.22011-0SQL::Translator::Producer::GraphViz(3)