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

Reply via email to