On 10/18/2013 1:26 PM, will trillich wrote:
We are using Catalyst for a web app. We've split off the
authentication database to facilitate multiple different apps using
the same user credentials, but we're having trouble linking the auth
db to the biz-info db.
The generalized user/team credentials and related info are in Auth,
and the actual business info for this app is in DB. Here's an object
from the DB database:
package Learn::Schema::DB::Result::TeamEmail;
#...
__PACKAGE__->belongs_to( team => 'Learn::Schema::Auth::Result::Team' );
Note that we're trying to get DB::TeamEmail to refer to Auth::Team
here. And below is the related object from the Auth database:
package Learn::Schema::Auth::Result::Team;
#...
__PACKAGE__->has_many( emails =>
'Learn::Schema::DB::Result::TeamEmail', 'team' );
At this point we expect
*$team->emails_rs*
to work but instead we get
Can't find source for Learn::Schema::DB::Result::TeamEmail
because TeamEmail isn't in $self->source_registrations (full names) or
$self->class_mappings (brief names) in the
DBIx::Class::Schema::source() method.
Pointers? Is there a different approach? Got a clue stick?
You probably just need to load the additional result classes into your
schema.
Assuming you are using the typical __PACKAGE__->load_namespaces call in
your Schema class, you can call it with parameters to find classes under
multiple namespaces. Something like this in your Learn::Schema::DB:
__PACKAGE__->load_namespaces(
result_namespace => [ '+Learn::Schema::Auth::Result', 'Result' ],
resultset_namespace => [
'+Learn::Schema::Auth::ResultSet','ResultSet' ],
);
See https://metacpan.org/module/DBIx::Class::Schema#load_namespaces for
more details
You will also probably need to make sure you use 'dbname.tablename'
instead of just 'tablename' in the __PACKAGE__->table() call in your
result classes. If you're using Schema::Loader, see the
'qualify_objects' option to have this generated automatically:
https://metacpan.org/module/DBIx::Class::Schema::Loader::Base#qualify_objects
Hope this helps,
vanstyn
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk