Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Is DBIx::Class borked or is it me?

by blue_cowdawg (Monsignor)
on Jan 03, 2013 at 15:44 UTC ( #1011475=perlquestion: print w/replies, xml ) Need Help??
blue_cowdawg has asked for the wisdom of the Perl Monks concerning the following question:

Since things are kinda slow here at work I decided to play around with a new (for me) CPAN module DBIx::Class. In doing so I created a fairly simple/stupid application just to exercise the parts. Here is the main program:

#!/usr/bin/perl -w use strict; use lib qq@/home/pberghold/tmp/foo@; use Traveller::DB::Schema; use Data::Dumper; my $schema = Traveller::DB::Schema->connect('DBI:mysql:database=dbixte +st', 'dbixtest','tsetxibd'); my $new_sector = $schema -> resultset('sector')->new({name=>'foregone' +}); $new_sector->insert();
(password above is not real!) and here is the schema module under ./Traveller/DB:
package Traveller::DB::Schema; use base qw/ DBIx::Class::Schema/; __PACKAGE__-> load_namespaces(); 1;
and lastly here is the result class:
package Traveller::DB::Result::Sector; use base qw/ DBIx::Class::Core /; __PACKAGE__ -> table('sector'); __PACKAGE__ -> add_columns(qw/ sector_id name / ); __PACKAGE__ -> set_primary_key('sector_id'); 1;
You might even notice that this follows the DBIx::Class documentation (tutorial?) pretty closely where only the names for things have been changed.

When I run the simple/stupid main program I get:

$ ./ DBIx::Class::Schema::resultset(): Can't find source for sector at ./tr line 11
I even tried using 'Sector' as the resultset name. Am I confused? It's always possible...

UPDATE: This is running under "perl 5, version 14, subversion 2 (v5.14.2) built for cygwin-thread-multi-64int"

Peter L. Berghold -- Unix Professional
Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg

Replies are listed 'Best First'.
Re: Is DBIx::Class borked or is it me?
by moritz (Cardinal) on Jan 03, 2013 at 16:08 UTC

    Since your schema class is Traveller::DB::Schema, a $schema->resulset('sector') looks for a class named Traveller::DB::Schema::Result::sector.

    In your case I'd put the schema into Travel::DB, and the result in Travel::DB::Result::Sector, and then call $schema->resultset('Sector').

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1011475]
Approved by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2018-06-20 10:21 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (116 votes). Check out past polls.