[Dbix-class] Problem with DBIx::Class::Schema::Loader or
Brandon Black
blblack at gmail.com
Fri Aug 25 00:20:33 CEST 2006
On 8/24/06, James Masters <james at masters.me.uk> wrote:
>
> Thanks for the advice. I have been re-reading the documentation and have
> made some progress by using the Loader Debugger.
>
> Firstly, let me reply to your 2 points. Of course, I did first try to use
> ->load_classes. This didn't work - the error said I was missing a module; I
> can't remember the name of it now but I couldn't find a win32 version of it
> so gave up
>
First, you should stop right there and work on that problem. What is this
missing module, why is it missing, and can it be fixed? This doesn't sound
sane/normal. I've haven't heard about people who cannot use load_classes.
And no, "use MG::Schema::Foo" is *not* an adequate substitute.
Anyway, with the debugger, I have learnt that the Loader was working fine. I
> can see all the tables, columns and PKs being loaded. Also I got
> the resultsets to work - the problem was that I was specifying CountryCode
> (which is indeed the correct name of my column) but to get it to work I have
> to use lower case "countrycode". Someone has told me that this is
> because MySQL columns are not case-sensitive and all columns are stored in
> lower case. [ Still, I don't think this is ideal behaviour personally as I
> like my "cased" column names. Wouldn't a better behaviour be for the
> methods to accept any case? Not sure if possible as might mess up other
> database interfaces - just wondering. ]
>
The Loader currently does force all column names to lower case. Normal
DBIx::Class lets you specify them however you like, and honors that
specification. The decision to lowercase them all in Schema::Loader just
makes the code *much* simpler than dealing with all of the cross-vendor case
issues that exist for what Loader is doing. At least for the time being, if
you want CamelCase column names in DBIx::Class, you have to do it for
yourself.
However, I am left with a problem. The following error:
>
> *Attempt to free unreferenced scalar: SV 0x1fa7a5c, Perl interpreter:
> 0x224234 at C:/Perl/site/lib/SQL/Abstract/Limit.pm line 325.
> *
> occurs every time I attempt to use a resultset. Tinkering has established
> that it occurs with each of the following lines.
> my @livecountries > my $m > my @allcountries > my $country > my $r > my $p > If I put all 6 lines, it occurs 6 times. It happens if this is the last
> thing in the script.
>
> This only happens when the schema is loaded via Loader - it did not appear
> when the schema was loaded via my manually created module. The Loader
> debugger does not give any clues. If anyone can point me in the right
> direction for further reading/investigation, I'd be very grateful.
>
The error itself is pointing you somewhere. What's on line 325 of S::A::L?
(and what version do you have installed from where?).
-- Brandon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rawmode.org/pipermail/dbix-class/attachments/20060824/97c84270/attachment-0001.htm
More information about the Dbix-class
mailing list