[Catalyst] Database schema -- Can't locate object method "new" via package

Sarah Berry berry.sarah at gmail.com
Fri Jun 16 00:43:14 CEST 2006


I'm trying to learn how to use the database plugins, specifically DBIx. I
set up my schemas to load from an existing database (hopefully), and now I
want to test it out to see if I did that right. So I put the following lines
into a page called dbixdemo.pm, in the "default" function:

        my $schema = VieSEB::Schema::SLogDB->new();
        my $crazy_attempt = $schema->resultset('SLogDB')->find(14);

The server script compiles and runs it fine, which is a good sign. But when
I try to view the page in a browser, I get this error message:

Caught exception in vieSEB::Controller::dbixdemo->default "Can't locate
object method "new" via package "VieSEB::Schema::SLogDB" (perhaps you forgot
to load "VieSEB::Schema::SLogDB"?)

I've searched the mailing list archives, but I'm afraid I can't figure out
how to debug this. Can anyone offer some suggestions? My schemas are below.

Thanks in advance,

Sarah



Here are the schemas I set up:
In the Model folder, SLogDB.pm:

package VieSEB::Model::SLogDB;

use warnings;
use strict;

use base 'Catalyst::Model::DBIC::Schema';

__PACKAGE__->config(
schema_class => 'VieSEB::Model::SLogDB',
);

return 1;


In the Schema folder, I have an empty folder named SLogDB/ , and a file
called SLogDB.pm:

package VieSEB::Schema::SLogDB;

use warnings;
use strict;

use base qw/DBIx::Class::Schema::Loader/;

__PACKAGE__->load_from_connection(
connect_info =  [
'databaseInfo',
'username',
'password',
{AutoCommit => 1}
]
);

my $dsn = 'databaseInfo';
my $user = 'username';
my $password = 'password',
my $options = {AutoCommit => 1};

1;


(where of course databaseInfo, username, and password are the actual values)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rawmode.org/pipermail/catalyst/attachments/20060615/05ac22ff/attachment.htm 


More information about the Catalyst mailing list