On Mon, 2008-07-28 at 10:13 +0930, Jon Schutz wrote: > On Sat, 2008-07-26 at 23:25 -0400, Daniel Zingaro wrote: > > Hi all, > > > > (I hope this is the right place for this. The mailing list name says > > developers, which I'm most definitely not. If there's another mailing > > list to talk about using SQL::translator, please let me know.) > > > > I'm going to be teaching a databases course in September and looking for > > a tool for making ER diagrams from databases. I'm visually impaired and > > so tools like Visio (that people seem to use) are out. I think > > SQL::Translator can help, but: > > > > I installed SQL::Translator, but I could not install Test::Differences. > > Is this important? ... If yes, I can provide all the details of the > > failed installation(though it seems to be working, unless the below > > problem is related). > > > > Next, I installed SQLite (sqlite3.exe), created a sample database, used > > '.dump' to make a .sql file, and tried to give this to sqlt-graph to > > output an ER diagram for me. It complains saying that line 3 is > > unexpected. The dumped .sql is as follows: > > > > BEGIN TRANSACTION; > > CREATE TABLE test (first, last); > > INSERT INTO "test" VALUES('tick','tock'); > > COMMIT; > > > > Am I doing something wrong? > > > > Also, I'd appreciate any insights into the best way to generate ER > > diagrams. Should I be using sqlt-graph at all? (There seems to be other > > options.) Has anyone had more luck with dot or neato?? > > > > OK... I'll stop here :$. Thanks a lot, > > Dan > > > > I have successfully used SQL::Translator and dot to produce a graphical > representation of quite complex schema. I'm not sure I could recommend > the output for the visually impaired though - I imagine you'd need to > put some effort into getting font sizes/scales correct. It was some > time ago when I used this but I recall that there were a couple gotchas > - one with getting the SQL::Translator args right for going from a > DBIx::Class schema to GraphViz, and the other with tidying up the dot > output as some characters came through improperly escaped. The crude > script I use is pasted below. I go DBIx::Class to MySQL to GraphViz; if > you already have a SQLite schema, then you probably only need the second > half. > > > > use SQL::Translator; > use strict; > my $outfile = "schema.sql"; > my $dotfile = "schema.dot"; > my $psfile = "schema.ps"; > my $schema = "Local::My::Schema"; # this is what we want to dump > > my $translator = SQL::Translator->new( > debug => 0, > trace => 0, > parser => > 'SQL::Translator::Parser::DBIx::Class', > parser_args => { 'DBIx::Schema' => > $schema }, > to => 'MySQL', > ); > my $output = $translator->translate(); > die $translator->error unless $output; > write_file($outfile, $output); > > > my $grapher = SQL::Translator->new( > from => 'MySQL', > to => 'GraphViz', > producer_args => { > show_fields => 1, > output_type => 'canon', > show_constraints => 1, > show_sizes => 1, > show_datatypes => 1, > }, > ) or die SQL::Translator->error; > > my $dot = $grapher->translate(\$output); > die "Error: " . $grapher->error unless $dot; > > $dot =~ s/\\([{}|])/$1/g; > $dot =~ s/\\\\\n//og; > $dot =~ s/size\s*=\s*"8.5,11"/size = "7.5,10.5"/; > > write_file($dotfile, $dot); > > my $dotcmd = "/usr/bin/dot"; > $dotcmd = "/usr/local/bin/dot" unless -e $dotcmd; > die "graphviz must be installed to create PostScript file" unless -e $dotcmd; > > `$dotcmd -Tps $dotfile -o $psfile`; > print STDERR "Wrote $psfile\n"; > > > > sub write_file > { > my ($file, $data) = @_; > > open(my $out, ">", $file) or die "Failed to open $file for writing: $!"; > print $out $data; > close($out); > > print STDERR "Wrote $file\n"; > } > > > > Regards, > >
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ -- sqlfairy-developers mailing list sqlfairy-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlfairy-developers