[Dbix-class] Using sqlt with DBIx-Class schemas

John Napiorkowski jjn1056 at yahoo.com
Wed May 3 15:25:03 CEST 2006


For whatever it's worth I had exactly the same trouble
you had.  I'm going to try the suggestion of grabbing
the lastest from CVS.  Right now I am hand writing the
DDL which is both time consuming and error prone.

--john

--- Jess Robinson <castaway at desert-island.demon.co.uk>
wrote:

> 
> Yes, but I'm using the SQLT from cvs, whic does have
> the package 
> parameter.. SQLT has quite a slow release cycle, so
> I suggest you use 
> that.. And Ill go poke the other devs, and see if we
> cant at least get 
> some dev releases done.
> 
> Jess
> 
> 
> On Mon, 1 May 2006, Matija Grabnar wrote:
> 
> > Ash Berlin wrote:
> >> Matija Grabnar wrote:
> >>
> >>> For a project (in Catalyst, if it matters) I
> wanted to write a
> >>> DBIx::Class schema first, then use sqlt to
> translate that schema into
> >>> appropriate SQL commands to create the database.
> (I considered doing it
> >>> the other way, but I don't think sqlt would
> correctly pick up
> >>> many-to-many relations automaticaly)
> >>>
> >>> However, I'm having a problem: sqlt refuses to
> parse my DBIx::Class schema.
> >>> The error is:
> >>> Error: translate: Error with parser
> 'DBIx::Class': Undefined subroutine
> >>> &DBIx::Class::parse called at
> >>> /usr/local/share/perl/5.8.8/SQL/Translator.pm
> line 484.
> >>>
> >>> When I run sqlt in debug mode, I see a
> difference between how the
> >>> DBIx::Class producer (which works) and the
> parser (which doesn't work)
> >>> get registered:
> >>>
> >>>
> >>
> >> This was a problem i discovered and I thought
> Matt made a note of maybe
> >> not. The problem is sqlt is pickup up DBIx::Class
> (as in the db access
> >> module) before it picks up
> SQL::Translator::Parser::DBIx::Class. Perhaps
> >> try the following (untested) cmd
> >>
> >> sqlt -d -f SQL-Translator-Parser-DBIx-Class -t
> DBIx-Class-File
> >> STest/Schema.pm
> >>
> >
> > Aha! That got me a few steps forward, but now I
> get:
> > [SQL::Translator] Got parser: code ref
> > [SQL::Translator] Got producer: code ref
> > [SQL::Translator] Got parser:
> SQL::Translator::Parser::DBIx::Class::parse
> > [SQL::Translator] Got producer:
> >
>
SQL::Translator::Producer::DBIx::Class::File::produce
> > Error: translate: Error with parser
> > 'SQL::Translator::Parser::DBIx::Class': No
> DBIx::Schema at
> >
>
/usr/local/share/perl/5.8.8/SQL/Translator/Parser/DBIx/Class.pm
> line 34.
> >
> > Looking at the code, I see that the parser expects
> to see the schema in the
> >    my $dbixschema  = $args->{'DBIx::Schema'} ||
> $data;
> >    $dbixschema   ||= $args->{'package'};
> >
> > Going through sqlt with debugger, I see args being
> set up, but I don't
> > see any way whatsoever of passing a "DBIx::Schema"
> or "package"
> > parameter to the parser. I must be missing
> something.
> >
> > Is anybody using sqlt to translate DBIx::Class
> schemas into other stuff?
> > If not, what are you using? And is, whatever
> you're using, able to
> > specify the full range of DBIx::Class
> relationships, including many_to_many?
> >
> >
> >
> >
> > _______________________________________________
> > List:
>
http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> > Wiki: http://dbix-class.shadowcatsystems.co.uk/
> > IRC: irc.perl.org#dbix-class
> > SVN:
>
http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
> >
> >
> 
> _______________________________________________
> List:
>
http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> Wiki: http://dbix-class.shadowcatsystems.co.uk/
> IRC: irc.perl.org#dbix-class
> SVN:
>
http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



More information about the Dbix-class mailing list