[Pdx-pm] DBIC "Can't find source" error
Joshua Keroes
joshua at keroes.com
Wed Apr 21 16:36:17 PDT 2010
I'm trying to put last week's DBIC lecture to use and have most of the
obvious stuff done. I'm getting hung up by the error message:
"DBIx::Class::Schema::resultset(): Can't find source for Interface at ...".
For the record, dbicadmin will generate the same error message (but still
generate SQL.)
There are two tables: ECCKT and interface. An ECCKT is a circuit ID. Each
ECCKT can have many interfaces.
I'm not finding much about fixing this particular error and the DBIC source
code is a little dry for me to see how it relates.
Ideas?
Thanks,
Joshua
Source code from one script and three modules:
---------
# This is the program that uses the DBIC schema:
use Integra::UBI::Schema;
my $schema = Integra::UBI::Schema->connect( ...redacted...);
my $row = $schema->resultset('ECCKT')->create({
'ecckt' => 'ABCD0123456ABCDEF',
'customer' => 'John Johnsonson',
'end' => 1269644794,
'interface' => 'GigabitEthernet10/1',
'last_updated' => 1269644794,
'router' => 'ar11.slkcutxd.example.com',
'speed' => 1000000000,
'start' => 1265958902,
'state' => 'active',
});
$row->update;
---------
package Integra::UBI::Schema;
use base qw/DBIx::Class::Schema/;
our $VERSION = '0.01';
__PACKAGE__->load_namespaces();
__PACKAGE__->load_components(qw/Schema::Versioned/);
---------
package Integra::UBI::Schema::Result::ECCKT;
use base qw/DBIx::Class::Core/;
__PACKAGE__->table('ecckt');
__PACKAGE__->add_columns(
ecckt_id => {
data_type => 'integer',
size => 8,
is_nullable => 0,
is_auto_increment => 1,
},
ecckt => {
data_type => 'varchar',
size => 64,
is_nullable => 0,
},
if_id => {
data_type => 'integer',
size => 8,
is_nullable => 0,
is_foreign_key => 1,
}
);
__PACKAGE__->set_primary_key('ecckt_id');
__PACKAGE__->has_many('interfaces',
'Integra::UBI::Schema::Result::Interface', 'if_id');
---------
package Integra::UBI::Schema::Result::Interface;
use base qw/DBIx::Class::Core/;
__PACKAGE__->table('interface');
__PACKAGE__->add_columns(
if_id => {
data_type => 'integer',
is_nullable => 0,
is_auto_increment => 1,
},
customer => {
data_type => 'varchar',
size => 256,
is_nullable => 1,
default_value => '',
},
state => {
data_type => 'varchar',
size => 12,
is_nullable => 1,
},
router => {
data_type => 'varchar',
size => 128,
},
interface => {
data_type => 'varchar',
size => 128,
},
speed => {
data_type => 'integer',
is_nullable => 1,
},
start => {
data_type => 'integer',
is_nullable => 1,
},
end => {
data_type => 'integer',
is_nullable => 1,
},
last_updated => {
data_type => 'integer',
is_nullable => 1,
},
valid_router => {
data_type => 'tinyint',
is_nullable => 1,
},
valid_it => {
data_type => 'tinyint',
is_nullable => 1,
},
ecckt_id => {
data_type => 'integer',
is_nullable => 0,
is_foreign_key => 1,
},
);
__PACKAGE__->set_primary_key('if_id');
__PACKAGE__->belongs_to('ecckt', 'Integra::UBI::Schema::Result::ECCKT',
'ecckt_id');
__END__
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/pdx-pm-list/attachments/20100421/3e976a28/attachment.html>
More information about the Pdx-pm-list
mailing list