use Dancer ':syntax'; use SQL::Translator; get '/render' => sub { my $db = params->{db}; my $format = params->{format} || 'text'; my $translator = SQL::Translator->new( from => 'DBI', to => 'MySQL', parser_args => { dsn => "dbi:mysql:$db", db_user => '', db_password => '', }, ); my $sql = $translator->translate( data => '' ); if ($format eq 'text') { content_type 'text'; return $sql; } elsif ($format eq 'png') { content_type 'png'; my $translator = SQL::Translator->new( from => 'MySQL', to => 'GraphViz', producer_args => { output_type => 'png', natural_join => 1, }, ); return $translator->translate( data => $sql ); } };