[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